not. Probably because the MVC word is so overloaded and because nobody implements exactly the same MVC pattern anyway. The separation of concerns is all I care about. О концепции Symfony в целом Скорость и легкость Гибкость Расширяемость W ut? пятница, 9 ноября 12 г.
new SpellChecker(); } } class TextEditor { private $checker; public TextEditor(ISpellChecker $checker) { $this->checker = $checker; } } Inversion of Control пятница, 9 ноября 12 г.
Несвязанность модулей верхнего и нижнего уровней • Абстрации не зависят от подробностей Реализации • Service Locator • Dependency Injection пятница, 9 ноября 12 г.
Будучи загруженным, сервис не может быть переорпеделен (в отличие от Service Locator’a) • Слабое связывание кода • Type Hinting • Локализация сервисов для дэбага и тестирования Плюсы пятница, 9 ноября 12 г.
function boot() { ... // init container $this->initializeContainer(); foreach ($this->getBundles() as $bundle) { $bundle->setContainer($this->container); $bundle->boot(); } ... } /** * Initializes the service container. * * The cached version of the service container is used when fresh, otherwise the * container is built. */ protected function initializeContainer() { ... } Реализация в Symfony • HttpKernel • Bundles пятница, 9 ноября 12 г.