Comments 4
В Zend тоже над этим работают )
Паттерн конечно хороший, но autocomplete не будет работать =(, как и у других паттернов методы которых возвращают довольно таки общий интерфейс.
спасибо за ссылку на зенд. раз уж пошла такая пьянка, то вот на этот проект о том же паттерне стоит взглянуть:
phemto.sourceforge.net/
Его автор — Маркус Бэйкер, тот, который написал SimpleTest.
Phemto, если глядеть на сайт, имеет весьма скудную документацию, и кажется заброшенным. Однако это далеко не так.
Кроме того, что в svn видны обновления и версии продолжают релизиться, внутри дистрибутива лежит краткий и точный учебник по Dependency Injection. В духе Маркуса ясно и четко шаг-за-шагом от хардоденных классов, через Registry, через Service Locator, через Dependency Injection к Контейнеру управления зависимостями.
Элегантный код:
Ну и подробный тюториал как пользоваться.
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');
Ну и подробный тюториал как пользоваться.
Sign up to leave a comment.
Компонент Dependency Injection