L!MP, можно, всегда нужно стараться не усложнять. У меня есть проекты на чистом процедурном, ибо надо было реализовать быстро и изменений в проекте не предвиделось.
L!MP, можно, всегда нужно стараться не усложнять. У меня есть проекты на чистом процедурном, ибо надо было реализовать быстро и изменений в проекте не предвиделось.
Mapper <-> Entity, тобишь в Mapper есть Entity
# L!MP (17.11.2016 / 14:41)Ааа, нет, если ты пишешь библиотеку, обычно ты же с ней поставляешь и фабрику. в которой уже реализована нужная логика.
Я понятия не имею про эти ваши фабрики и если начну представлять, то наверняка представляю что то совсем не то.
Как оно там работает вообще? Ты пишешь конфиг, библиотека генерирует на основе него с
# Delphinum (17.11.2016 / 14:45)Ну это и есть циклическая зависимость: объект А требует объект Б который тоже требует объект А в результате бесконечная рекурсия.
Есть у меня проект, в котором я своими руками (да не будет мне прощения) реализовал зависимость вида Mapper <-> Entity, тобишь в Mapper есть Entity, а в Entity есть Mapper. Рекурсивная зависимость, ма
L!MP, ну я к тому, что и у DI есть свои ограничения, и у SL. Альк верно сказал, DI это SL + инициализатор, умеющий вставлять в запрашиваемые сервисы их зависимости. Тобишь из SL можно легко реализовать DI с помощью 1-2 доп классов.
А, ну так фабрика это получается сервис провайдер.
L!MP, прокси дебажить нереально ) О тестировании такого я вообще молчу, а взрослые IT компании не пустят твой проект в продакшн без юнит-тестов к нему, тим лид просто скажет - переписывай.
# L!MP (17.11.2016 / 14:52)Вот тут вина разработчика
Ну это и есть циклическая зависимость: объект А требует объект Б который тоже требует объект А в результате бесконечная рекурсия.
Решается с помощью прокси классов.
L!MP, если говорить совсем просто, то фабрика это:
$locator->set('MyService', function(){
$service = new MyService(...);
...
return $service;
});
$service = $locator->get('MyService'); // вызывается объявленная функция, которая создает и возвращает объект. В $service попадет то, что вернет эта функция # Delphinum (17.11.2016 / 14:55)Прокси компилируемый, т.е это реальный класс.
L!MP, прокси дебажить нереально ) О тестировании такого я вообще молчу, а взрослые IT компании не пустят твой проект в продакшн без юнит-тестов к нему, тим лид просто скажет - [url=http://risovach.ru