Ben genellikle bu davranış da oluşur Defteri tonunu kullanın. Ben her zaman Registry girişe işaret benim modellerin yapıcısı bir örnek değişken ayarlamak;
class Registry {
private static $_instance;
private $_registry;
private function __construct() {
$_registry = array();
}
public static function getInstance() {
if (!Registry::$_instance) {
Registry::$_instance = new Registry();
}
return Registry::$_instance;
}
public function add($key, &$entry) {
$this->_registry[$key] = &$entry;
}
public function &get($key) {
return $this->_registry[$key];
}
public function has($key) {
return ($this->get($key) !== null);
}
}
Modeli örnek;
class MyModel {
private $_db;
public function __construct() {
$this->_db = Registry::getInstance()->get('dbKey');
}
/* Every function has now access to the DAL */
}
Örnekleme örnek;
$dal = new Db(...);
Registry::getInstance()->add('dbKey', $dal);
...
$model = new MyModel();
$model->doDbStuff();
Başka bir yaklaşım her zaman her kurucusuna bir parametre olarak başvuru geçmektir.
Benim modelinde yöntemlerin çoğu başvuru kullanın yalnızca birkaç (bir veya iki) yöntemleri referans kullanımı varsa tabii ki ben sadece, bu davranışı kullanmak size gösterdiğim gibi, ben Defteri / Singleton diyoruz.