Использование registry.php для хранения объектов - PullRequest
0 голосов
/ 02 мая 2011

Мой сайт в данный момент работает так:

index.php

  • включает config.php ->

config.php

  • устанавливает переменную, $ siteRegistry = Registry :: singleton ();

  • также отключает URL и создает новый объект в зависимости от того, что говорит URL, поэтому www.site.com/login создает новый объект входа в систему.

loginObject

  • создано внутри config.php

  • создает новый логинModel

loginModel

  • Требуется доступ к $ siteRegistry, но отображается следующая ошибка,

Примечание: неопределенная переменная: siteRegistry в F: \ Projects \ application \ models \ loginModel.php в строке 37

Это строка 37 -

$siteRegistry->storeObject("PDOExtender", "DBO");

Я считаю, что проблема в том, что он не может найти переменную $ siteRegistry из config.php, кто-нибудь знает, как это исправить?

1 Ответ

1 голос
/ 02 мая 2011
$siteRegistry = Registry::singleton();

Поскольку Registry (каким бы он ни был) является единичным, нет необходимости использовать эту переменную $ siteRegistry как глобальную. На самом деле вы всегда должны вызывать Registry::singleton внутри каждой функции, которую хотите использовать. Если это долго, просто создайте небольшую функцию-обертку:

function reg() {
    return Registry::singleton();
}

Целью одноэлементных объектов является то, что всегда существует только один из них за раз, поэтому вы всегда можете получить их снова во время выполнения программ без использования переменных.

...