Intereting Posts
Какой метод более безопасен / подходит для блокировки доступа к подкаталогу с использованием .htaccess? Почему мой код codeignign не подходит для исправления действия контроллера? Вставьте данные в базу данных MySQL из приложения Android. Изменения не отражены в базе данных Проблема с CodeIgniter – force_download () Простая PDO-обертка Php mysqi bind_param Число переменных не соответствует количеству параметров в подготовленном операторе PHP / MySQL – Хранение данных массива как JSON, плохая практика? Селективно наследует части объекта Управление пользовательским кодом с помощью автозагрузчика Composer? Перенаправить только домашнюю страницу WordPress с переадресацией 301 Как сборка мусора работает в PHP? А именно, как очищаются локальные функциональные переменные? PHP специальные символы в поле темы Определить индекс массива после вызова функции ajax success reload div content не работает PHP: отдельное значение в массиве в соответствии с порядком алфавита

Инверсия контейнера управления для PHP?

Я пытаюсь закодировать TDD-стиль в PHP, и один из моих самых больших камней преткновения (кроме отсутствия достойной IDE) заключается в том, что я должен сделать свой собственный взломанный вместе контейнер IoC, чтобы правильно внедрить все мои макеты.

Кто-нибудь использовал контейнер Ioc в php? Все, что мне удалось найти, это PHP IOC на постоянно раздражающем phpclasses.org, и, похоже, он почти не имеет документации и не так много из следующего.

Solutions Collecting From Web of "Инверсия контейнера управления для PHP?"

Я играл с некоторыми документами для PHP, но я не использовал их в производстве. Есть несколько ссылок:

  1. http://www.stubbles.net/, который, я думаю, самый старый, который я пробовал
  2. http://php.xjconf.net/
  3. FLOW3 – Я верю, что это станет очень приятной картой (ее бета сейчас)

Вы упомянули, что будете использовать его для TDD – так что, возможно, посмотрите на Injection Dependency для модульных тестов в PHP

Phemto развивается снова, и выглядит довольно многообещающим IMHO.

Несколько других подобных проектов, на которые вы можете обратить внимание:

ведро (Отказ от ответственности: я главный автор этого)

Php-порт picocontainer существует уже давно. Я не думаю, что это активно развивается, но, с другой стороны, я считаю, что он довольно стабилен. Прошло много времени с тех пор, как я посмотрел на него.

Довольно новый проект, который я недавно наткнулся, – это Crafty . Не уверен, сколько людей использует его.

Я также наблюдаю за sphicy , который выглядит интересным.

Вы также можете попробовать Ding (http://marcelog.github.com/Ding), который был смоделирован после Spring ™ для Java. Это полная инверсия контейнера для инъекций контроля и зависимости, который также поддерживает AOP

Как насчет инъекции Symfony Dependency Injection или эквивалентного компонента PHP 5.3+ из проекта symfony 2.0.

PHP-DI – это другой контейнер для инъекций зависимостей.

Он представляет собой инъекцию зависимостей через аннотации и минимальную конфигурацию , вот пример:

class Foo { /** * @Inject * @var Bar */ private $bar; } 

Он очень прост в использовании и интегрируется с Zend Framework, например.

(да, я работаю над этой структурой)

Я работаю над контейнером IoC / DI PHP под названием «Субстрат» в течение последних шести месяцев. Это все еще очень много работы, но она была развернута на производстве в течение полутора месяцев и до сих пор работает очень хорошо.

Субстрат вдохновлен Spring Framework, но написан с учетом сильных и слабых сторон PHP. Документация на данный момент довольно минимальна, но есть пример кода , включая пример единичного тестирования. Это то, что вы считаете возможным использовать для TDD?

Laravel 4 имеет лучшие IoC и DI рамки. если вы не против использования рамки, то Laravel 4 – это способ пойти