会社のサイトに詳しく書いてあります。
<?php
class Animal {
protected $name;
protected $koe;
public function setName($name) {
$this->name = $name;
}
public function getName(){
return $this->name;
}
public function setKoe($koe) {
$this->koe = $koe;
}
public function getKoe(){
return $this->koe;
}
}
class Friends extends Animal{
public function MyName() {
return $this->name;
}
public function Naku() {
return $this->koe;
}
}
class Japaripark {
private $friends;
private static $instance;
public function __construct() {
$this->friends = array();
}
public static function getInstance(){
static $instance;
if(!isset($instance)){
$instance = new Japaripark();
}
return $instance;
}
public function addFriend($friend) {
$this->friends[] = $friend;
}
public function getFriend($name){
foreach($this->friends as $friend){
if($friend->getName() == $name){
return $friend;
}
}
return null;
}
public function resisterFriendDB() {
foreach($this->friends as $friend){
//Database resister
//登録要素
//$friend->getName(); //例:かばん
//$friend->getKoe(); //例:食べないで下さい
}
return null;
}
}
//Japariparkインスタンスを生成するよ!
$japaripark = Japaripark::getInstance();
$friend = new Friends();
$friend->setName("かばん");
$friend->setKoe("食べないでください");
$japaripark->addFriend($friend);
$friend = new Friends();
$friend->setName("サーバル");
$friend->setKoe("すっごーい");
$japaripark->addFriend($friend);
//DB登録
$japaripark->resisterFriendDB();
echo <<< EOM
フレンズ:{$japaripark->getFriend("かばん")->MyName()}<br/>
鳴き声:{$japaripark->getFriend("かばん")->Naku()} # メソッドチェーン
<hr/>
フレンズ:{$japaripark->getFriend("サーバル")->MyName()}<br/>
鳴き声:{$japaripark->getFriend("サーバル")->Naku()} # メソッドチェーン
<hr/>
EOM;
var_dump($japaripark);
exit();

