Как стать автором
Обновить

Комментарии 7

Ну по сути это и есть Symfony2 Service Container только не с полным её функционалом. А дальше что? Линивая инициализация, наследование сервисов, собственные pass compilers? Как раз не давно искал не большой IoCc, смотрел в сторону Pimple.

Вы сравнивали быстродействие вашего контейнера с другими сущесвующими? Symfony, если не ошибаюсь, дампит конфиг сервайсов в пхп код и не парсит его каждый раз.
Внешне он похож на Sf2 DI, но внутри — отличается. Стадии компиляции и выполнения в нем специально разделены и вы можете реализовать любую логику сборки Ваших конфигов.
Ленивая инициализация, наследование сервисов — да, обязательно сделаю это и не только.

Также в защиту Syringe скажу, что в нем есть Interface Injection и внедрение тега. Несмотря на мощь Sf2 данный функционал дождаться не удалось.

По производительности могу сказать следующее: Symfony дампит в php код, а Syringe использует для этого — php массив.
Реализация намного проще и нет проблемы с дубликатом класса, если необходимо создать два контейнера.
и внедрение тег

так в Sf2 DI есть же теги для описания сервисов. Но в Syringe они реализованы по другому. Или мы о разных вещах говорим?)
Мы говорим об одном. Но отличия есть:
В Sf2 для этого необходимо использовать CompilerPass.
В Syringe он внедряется декларативно при помощи #tagName. Это упрощает использование.
Ну по поводу interface injection ладно, хотя мне в этом плане больше нравится PHP-DI, но проблему с инджектом тэгов можно решить одним компилер пасом.
Не нашел у вас ничего связанного с автоконфигурацией (именно это я понимаю под Interface Injection). Так же добавили бы пример оного в текст статьи, даже если оно еще не заимплеменчено (не увидел этого при беглом просмотре исходников).
Комментарии и commit messages на русском — это вы зря. Лучше пусть кривоватый, но всем понятный английский, чем невозможность использования в международных командах.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории