?

Log in

No account? Create an account
Нэцкэ

PHP, Dependency Injection and Phemto

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

Кроме контейнера от Симфони, есть еще одна библиотека. Она называется Phemto. Написана Маркусом Бэйкером, автором SimpleTest. Она лаконичная и краткая до ужаса, поэтому стоит внимания и изучения. К сожалению, на самом сайте в онлайне лежит очень краткая заметка, однако внутри дистрибутива имеется более подробное руководство. Кроме того кратко и понятно объясняется работа паттерна. От хардкода, через фабрику, реестр и сервис-локатор к контейнеру управления зависимостями.

Я не поленился и перевел статью, т.к. мне кажется она может быть очень полезной. Однако на хабр пока не получилось ее положить — не справился с подсветкой кода, а без нее как-то не здорово. Поэтому выложил пока отдельным файлом. Если придумаю как переложу на хабру.

UPD Переложил: часть 1, часть 2. Сказалась неопытность в публикации статей на хабре. И целиком не влезла, и подсветка синтаксиса должна быть через тэг font. Вот тут есть инструмента.

Ссылки по ресурсам о DI:

1. Zend Framework тоже может заиметь DI-контейнер
2. Agildev.ru, Управление зависимостями в PHP-коде
3. DI-Контейнер от Symfony
4. PICO-контейнер на Java от которого все остальное произошло
5. Антипатерны использования DI
6. Презентация Джеффа Мура на PHP-tek, 2007

Comments

Спасибо за перевод. В русском приятней читать.
Опечатка: "... чтобы включить фйал phemto.php"

Дело за малым, сделать небольшой язык описания, парсер и научить секретаршу этому языку ;)

Get Porche when call for car;

Или что-то вроде "под машиной подразумевается порше, когда мы в разделе автомобилей ;)"

То есть логика скрипта должна догадаться что создать в зависимости от контекста применения, то есть без настроек. Вот тогда это будет совсем круто!

То есть для примера
interface Transport { }
class Porsche911 implements Transport { }
class RouteMaster implements Transport { }

никаких $injector->willUse('Porsche911');
Угу и потом фильм "восстание машин" :)
Ну а кому сейчас легко? Хотя, если рулить этим будет секретарша, то думаю, что такой терминатор дальше маникюрного салона не уйдет :)

http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
А что, php -qs подсветку не делает уже?
Так это PHP 4 делал <font ...>, а 5-й делает культурно <span color=...> и вот эту культуру-то хабр и убивает. Стрипает спаны.
а, я локально только пару месяцев назад пятёрку поставил, до этого четвёрки хватало, она культурная, ага. но екзешник от четвёрки остался, буду знать, в чём разница раскраски