Ben sadece OOP içine benim yolculuk kuruyorum - ve ben şu anda benim kendi MVC rulo çalışıyorum - sadece öğrenme amaçlı. Ben Apress bir öğretici ile çalışıyorum Desenler Uygulama Kitabı PHP-Objects. Ben özel __ construct / __clone tekniği kullanarak bir kayıt defteri tek nesne yarattık:
class Registry
{
private static $instance;
private $values = array();
private function __construct(){}
private function __clone(){}
public static function getInstance(){
if( !isset( self::$instance ) ){
self::$instance = new Registry();
}
return self::$instance;
}
public function get( $key ) {
if ( isset( $this->values[$key] ) ) {
return $this->values[$key];
}
return null;
}
public function set( $key, $val ) {
$this->values[$key] = $val;
}
}
Ben doğrudan yani bu nesnenin bir örneğini almak:
Registry::getInstance();
Ancak, (öğretici sözdizimi aşağıdaki) - Ben denemek ve kullanan kamu yöntemleri erişim eğer '->' yöntemi - örn:
Registry->setVal('page',$page);
Ben bir ayrıştırma hatası alıyorum. Yani '::' - Ben sadece kapsam çözünürlük operatörü kullanılarak yöntemleri erişebilirsiniz.
Ben nesne sarıcı instantiated olmamıştır çünkü bu olduğunu varsayarak yaşıyorum - ama sadece Sizle bu konuyu görüşmek / doğrulamak istiyorum ...