Я видели реестр вопросов узора на здесь, но сейчас я быть отброшен сообщением об ошибке я получаю: Using $this when not in object context
...реестр шаблон, Singleton и Fatal Error PHP
Я взял образец кода от http://avedo.net/101/the-registry-pattern-and-php/, и я просмотрел эти строки кода, но я просто не могу обернуть голову вокруг проблемы.
EDIT: Я получаю ощущение от ответов, что статья я связан не следует рассматривать как «рабочий код» ...
Вот отрывок из моего реестра код класса:
class registry {
//Holds variables, objects, etc.
private $reg = array();
private static $instance = null;
public static function getInstance() {
if($this->instance === null) { //THROWS THE FATAL ERROR
$this->instance = new registry();
}
return $this->instance;
}
//Disallow creation of new objects, forcing use of the Singleton
private function __construct() {}
private function __clone() {}
То, что я не понимаю, это ПОЧЕМУ, что это бросает эту ошибку. Как я понял $this
, что оно относится к тому, что называется метод, который этот отрывок из моего init.php файла:
//Instantiate registry
$registry = registry::getInstance();
Я чувствую себя немного перегорел от чтения и кодирования (эти последние несколько дней Я был посвящен обучению себя тому, как работает MVC, создавая мою собственную небольшую веб-инфраструктуру. Мне нужно пропустить что-то простое, но мне также кажется, что это именно то, что иллюстрирует статья. Для чего это стоит, я использую PHP 5.x.
Если кто-то чувствует, что им нужно прояснить некоторые из этих концепций для меня, пожалуйста, не стесняйтесь. :) Как всегда, спасибо, что нашли время, чтобы прочитать это.
Вам действительно следует избегать использования в ваших проектах синглетов и других форм глобального состояния. –
Было бы лучше создать объект реестра и передать его другим объектам, требующим доступа к его элементам? – armadadrive
Возможно, вам следует начать с просмотра [this] (http://www.youtube.com/watch?v=-FRm3VPhseI) и [this] (http://www.youtube.com/watch?v=RlfLCWKxHJ0) лекции , Это должно объяснить как проблемы, вызванные глобальным состоянием, так и рекомендации для решения. –