Комментарии 7
Ну по сути это и есть Symfony2 Service Container только не с полным её функционалом. А дальше что? Линивая инициализация, наследование сервисов, собственные pass compilers? Как раз не давно искал не большой IoCc, смотрел в сторону Pimple.
Вы сравнивали быстродействие вашего контейнера с другими сущесвующими? Symfony, если не ошибаюсь, дампит конфиг сервайсов в пхп код и не парсит его каждый раз.
Вы сравнивали быстродействие вашего контейнера с другими сущесвующими? Symfony, если не ошибаюсь, дампит конфиг сервайсов в пхп код и не парсит его каждый раз.
Внешне он похож на Sf2 DI, но внутри — отличается. Стадии компиляции и выполнения в нем специально разделены и вы можете реализовать любую логику сборки Ваших конфигов.
Ленивая инициализация, наследование сервисов — да, обязательно сделаю это и не только.
Также в защиту Syringe скажу, что в нем есть Interface Injection и внедрение тега. Несмотря на мощь Sf2 данный функционал дождаться не удалось.
По производительности могу сказать следующее: Symfony дампит в php код, а Syringe использует для этого — php массив.
Реализация намного проще и нет проблемы с дубликатом класса, если необходимо создать два контейнера.
Ленивая инициализация, наследование сервисов — да, обязательно сделаю это и не только.
Также в защиту Syringe скажу, что в нем есть Interface Injection и внедрение тега. Несмотря на мощь Sf2 данный функционал дождаться не удалось.
По производительности могу сказать следующее: Symfony дампит в php код, а Syringe использует для этого — php массив.
Реализация намного проще и нет проблемы с дубликатом класса, если необходимо создать два контейнера.
и внедрение тег
так в Sf2 DI есть же теги для описания сервисов. Но в Syringe они реализованы по другому. Или мы о разных вещах говорим?)
Мы говорим об одном. Но отличия есть:
В Sf2 для этого необходимо использовать CompilerPass.
В Syringe он внедряется декларативно при помощи
В Sf2 для этого необходимо использовать CompilerPass.
В Syringe он внедряется декларативно при помощи
#tagName
. Это упрощает использование.Не нашел у вас ничего связанного с автоконфигурацией (именно это я понимаю под Interface Injection). Так же добавили бы пример оного в текст статьи, даже если оно еще не заимплеменчено (не увидел этого при беглом просмотре исходников).
Комментарии и commit messages на русском — это вы зря. Лучше пусть кривоватый, но всем понятный английский, чем невозможность использования в международных командах.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Syringe — декларативный IoC Container на PHP