Ben bir kayıt defteri sınıf kullanmak bir Web uygulaması var. Kayıt defteri sınıf benim uygulama troughout ihtiyacı önemli sınıfları tutar.
Ben kayıt sınıf bir Singleton sınıf yaptık ve bu sınıf statik.
Kayıt sınıfının içeriği burada:
<?php
class registry
{
private static $objects = array();
private static $instance;
private function __construct(){}
private function __clone(){}
public static function singleton()
{
if( !isset( self::$instance ) )
{
self::$instance = new registry();
}
return self::$instance;
}
public function storeObjects()
{
$Objects = array_merge($GLOBALS['EXTRA_LIBS'],array('data','page','session','uri','loader','modules'));
foreach($Objects as $name)
{
$this->$name = $name;
}
}
public function __set( $object, $key )
{
require_once(__LIBRARIES . DS . $object . '.class.php');
self::$objects[ $key ] = new $object( self::$instance );
}
public function __get( $key )
{
if( is_object ( self::$objects[ $key ] ) )
{
return self::$objects[ $key ];
}
}
public function returnAllObjects()
{
return self::$objects;
}
}
?>
Şimdi ben ne burada benim uygulamada sınıflardan birini kullanmak istediğinizde:
registry::singleton()->data->adddata('somedata');
Ben her yöntemi benim uygulamada sınıfları bir lot, 1 zamanın az kullanın.
Şimdi benim sorum yapılacak en iyi şey budur:
1) her şey her şey aramak
2) Sınıf $registry = registry::singleton();
tek her yöntemi zaman ve sonra sadece yerel değişkeni kullanın. (Bu işe eğer ben bilmiyorum)
Ya da orada, bu sorunu çözmek için daha şık bir yöntemdir.