Как стать автором
Обновить

Комментарии 4

Паттерн конечно хороший, но autocomplete не будет работать =(, как и у других паттернов методы которых возвращают довольно таки общий интерфейс.
интерфейсы спасут гиганта мысли
спасибо за ссылку на зенд. раз уж пошла такая пьянка, то вот на этот проект о том же паттерне стоит взглянуть:

phemto.sourceforge.net/

Его автор — Маркус Бэйкер, тот, который написал SimpleTest.

Phemto, если глядеть на сайт, имеет весьма скудную документацию, и кажется заброшенным. Однако это далеко не так.

Кроме того, что в svn видны обновления и версии продолжают релизиться, внутри дистрибутива лежит краткий и точный учебник по Dependency Injection. В духе Маркуса ясно и четко шаг-за-шагом от хардоденных классов, через Registry, через Service Locator, через Dependency Injection к Контейнеру управления зависимостями.

Элегантный код:

require_once('phemto/phemto.php'); 

$injector = new Phemto(); 
$injector->whenCreating('Page')->forVariable('session')->willUse(new Reused('Session')); 
$injector->whenCreating('Page')->forVariable('continuation')->willUse('Continuation'); 
$injector->whenCreating('Page')->forVariable('alerts')->willUse('Alert'); 
$injector->whenCreating('Page')->forVariable('accounts')->willUse('Accounts'); 
$injector->whenCreating('Page')->forVariable('mailer')->willUse('Mailer'); 
$injector->whenCreating('Page')->forVariable('clock')->willUse('Clock'); 
$injector->whenCreating('Page')->forVariable('request')->willUse('Request'); 

$page = $injector->create('Page');


Ну и подробный тюториал как пользоваться.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.