IoC в php

Читал-читал про инверсию управления (Inversion of Control), всякие Pico и Phemto.

Долго не мог понять, зачем может понадобиться что-то вроде этого

Потом случайно услышал одного умного человека, который сказал, что тоже не понимает, зачем нужен IoC Container в динамических языках. И тут-то я наконец осознал, что действительно есть языки со статической типизацией (тыщу лет такими уже не пользуюсь), и весь этот мегапаттерн — это на самом деле мегакостыль, чтобы пользоваться преимуществами динамического языка. Так что если кто-то мне скажет про то, как IoC исключительно полезен в том же PHP или Python, я или засмеюсь, или очень внимательно послушаю, что же я такого в этом мире не понимаю. Другое дело — Dependency Injection (Constructor Injection или Setter Injection, когда-нибудь напишу отдельный про это, а пока умная мысль, которую подслушал: «Setter Injection в принципе лучше использовать только при циклических зависимостях объектов»).

Ссылки по теме:
http://martinfowler.com/bliki/InversionOfControl.html
http://martinfowler.com/articles/injection.html
http://wiki.agiledev.ru/doku.php?id=ooad:manage_dependencies_in_php_code
http://code.google.com/p/ovo-container/
http://wiki.agiledev.ru/doku.php?id=ooad:dependency_injection

LEAVE A COMMENT