Singleton hatası.

0 Cevap php

Ben Vikipedi PHP tekiz kullanıyorum. Sorun tekil bir yöntemi vardır olduğunu require once ve bu komut dosyasını çalıştırın ve sınıf yöntemi uygulamak zaman get_shared_instance, yeni bir tekiz başlatılır aracılığıyla yükler ve çalıştırır diğer PHP komut. Neden bu? Ve etrafında işi nedir?

(temel bir formda) tekil:

class Controller {

    protected static $shared_instance;

    public static function get_shared_instance()
    {
        if (self::$shared_instance === NULL) { 
            self::$shared_instance = new self();
        } 

        return self::$shared_instance;
    }

/// Constructor made private to be used with singleton.
final protected function __construct(){ $this->initiate(); }

/// Do not allow the clone operation: $x = clone $v;    
final protected function __clone() { }

diğer dosyaları yükler Singleton'ın yöntemi

private function settings_by_domain()
{
    $current_domain = $_SERVER['HTTP_HOST'];
    $path = pathinfo(__FILE__, $options = PATHINFO_DIRNAME);
    $settings_file = $path.'/'.$current_domain.'.php';

    if (is_file($settings_file))
    {
        $this->settings_file = $settings_file;
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

Gerekli dosya içerir:

$c = self::get_shared_instance();

ki, ne yazık ki, çalışma yeni bir örneğini oluşturur alıyorsunuz?

Many thanks Ross

0 Cevap