Переменные доли между функциями в PHP, не используя globals

Компоненты не должны извлекать или сохранять данные напрямую, и они, конечно, не должны сознательно представлять поддельные данные. Они должны сосредоточиться на представлении данных и делегировать доступ к данным службе. Сервисы - отличный способ обмениваться информацией между классами, которые не знают друг друга. Вы можете узнать больше на: Услуги

5
задан Nikola K. 9 September 2012 в 20:01
поделиться

3 ответа

Я кодировал бы другой класс с помощью шаблона "одиночка" для получения единственного экземпляра кэш-памяти. Как это -

class MemCache 
{ 
  private static $instance = false;   
  private function __construct() {}

  public static function getInstance()
  { 
    if(self::$instance === false)
    { 
      self::$instance = memcache_connect(); 
    } 

    return self::$instance; 
  } 
}

и использование -

$mc = MemCache::getInstance();
memcache_get($mc, ...)
...
9
ответ дан 18 December 2019 в 09:54
поделиться

Передача в экземпляре MC:

class abc
{
    function __construct($mc) {
        $this->mc = $mc;
    }
}    
class def
{
    function __construct($mc) {
        $this->mc = $mc;
    }
}

$mc = new cache_class;
$abc = new abc($mc);

и т.д.

5
ответ дан 18 December 2019 в 09:54
поделиться

Я думаю, что Вы ищете статические свойства здесь.

class mc {
    private static $instance;

    public static function getInstance() {
        if (self::$instance== null) {
            self::$instance= new self;
        }
        return self::$instance;
    }

    private function __construct() {
        $this->mem = memcache_connect(...);
    }
}

Это реализует основной шаблон "одиночка". Вместо того, чтобы создать вызов объектов mc::getInstance(). Взгляните на одиночные элементы.

2
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: