Мы говорим об одном. Но отличия есть:
В Sf2 для этого необходимо использовать CompilerPass.
В Syringe он внедряется декларативно при помощи #tagName. Это упрощает использование.
Внешне он похож на Sf2 DI, но внутри — отличается. Стадии компиляции и выполнения в нем специально разделены и вы можете реализовать любую логику сборки Ваших конфигов.
Ленивая инициализация, наследование сервисов — да, обязательно сделаю это и не только.
Также в защиту Syringe скажу, что в нем есть Interface Injection и внедрение тега. Несмотря на мощь Sf2 данный функционал дождаться не удалось.
По производительности могу сказать следующее: Symfony дампит в php код, а Syringe использует для этого — php массив.
Реализация намного проще и нет проблемы с дубликатом класса, если необходимо создать два контейнера.
В Sf2 для этого необходимо использовать CompilerPass.
В Syringe он внедряется декларативно при помощи
#tagName
. Это упрощает использование.Ленивая инициализация, наследование сервисов — да, обязательно сделаю это и не только.
Также в защиту Syringe скажу, что в нем есть Interface Injection и внедрение тега. Несмотря на мощь Sf2 данный функционал дождаться не удалось.
По производительности могу сказать следующее: Symfony дампит в php код, а Syringe использует для этого — php массив.
Реализация намного проще и нет проблемы с дубликатом класса, если необходимо создать два контейнера.