Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
denver
ну а восстанавливать из сингтона базы %)
Regedit::setObj("db", DB::getInstance());
Вообще касательно симплтеста,
Regedit::setObj("db", DB::getInstance());
уйдет в ::setup(), а забивание в реестр моков будет только в тех тестах, где нужны именно моки.
Wicked
Хм.. я то думал что вы имеете в виду что getObj('db') создает экземпляр класса сам, если его (экземпляра DB) не существует (ну как фабрика например).
А если нет то это что ж получается, перед любым использованием класса который юзает DB нужно вызывать Registry::setObj('db', DB::getInstance).
PHP:
//program, not test
...
Registry::setObj('db', DB::getInstance).
$user = new User;
...
И так, для надежности, в каждом классе использующем new User?
Зачем ??? Можно
1. через __construct
2. объявить интерфейс iRegistry для создаваемых объектов , в котором и будут переданы все данные нужные для инициализации. Где в качестве параметра передавать объект RegistryDataObj содержащий только данные.
Wicked
"Завести" db и ldap в реестре в самом начале нужными setObj('db') и setObj('ldap') -- тогда уж не легче ли делать это в самом методе getObj() -- заводить их если они еще не были заведены? Тогда и в setObj() надобность отпадает... за исключением тестов. Но стОит ли ради тестов то?..
Necromant
>>1. через __construct
Что вы имеете в виду, ведь не Registry::__construct же ж.
если User::___construct($db, $ldap) то само собой разумеется.
Вообще объект сам должен знать о себе все и все $db, $ldap получать из реестра, главное ведь чтобы возращаемые объекты реализовали интерфейс iDB, iLDAP.