C symfony всё значительно сложнее, это скорее клон гибрида OSGi (концепция бандлов), Spring (концепция сервисов и архитектуры в целом) с прилеплными Pebble (местный Twig) и Hibernate/MyBatis (то, из чего выросла Doctrine), модифицированный личным восприятием Фабиена… И этот клон чертовски хорош, некоторых крутых штук в оригинале просто нет
В контексте PHP (да и Java послдених лет), это всё же ближе к MVP, или вы во view сервис передаёте? Подозреваю что это не так, и вы в контроллере собираете все необходимые данные по всем нужным сервисам и только потом отдаёте в новосозданную вьюху.
То, что в вебе называется MVC, на самом деле называется MVP и Presenter там как раз посередине, а что касается MVC — закопайте вы его уже и не насилуйте, этот паттерн был придуман для толстых клиентов (Java GUI, ...), оно для веба не применимо!
У меня были проблемы с запуском (systemd не запущен, а как его там запустить — не понятно) + как вы решили проблему с уничтожением контейнера? «while true»?
Или вы про запуск контейнеров через systemd? Я вот пишу про запуск юнитов изнутри контейнера…
Например потому, что скоуп это не нечто привязанное к запросу: я мог бы с лёгкостью (относительной) запилить коннект к rabbitmq и затолкать его ЖЦ в отдельный скоуп, чем городить десяток лишних методов для получения «текущего» коннекта (да, пример высосан из пальца, но всё же… в конце концов можно эту идею привернуть например к long poll и сокетам) + в большинстве случаев проще явно указывать зависимость от текущего состояния в явном виде, а в случае полной замены на request_stack придётся дёргать его в каждом из методов сервиса, а не единожды в конструкторе — это немного ломает всю суть инверсии зависимостей.
Естественно все эти рассуждения нужны лишь если всё запускается демоном, в остальном не актуально ровно полностью.
Не то, мне не нужно пересоздавать сервис на каждый новый подзапрос, мне нужно пересоздавать на каждый новый master запрос. А вот как запилить свой кастомный скоуп я так и не нашёл (может плохо искал?).
Да пусть висят, просто интересно поведение, если я допустим делаю сервис, зависящий от security.token_storage, то будет ли это нормально работать (пересоздавать мой сервис для каждого нового запроса) или нет?
P.S. В спринге это решается указанием области видимости сервиса: запрос, синглтон,…
Там ключевым словом было «новосозданную», а вот MVC2 подразумевает, что она живёт отдельно от контроллера.
Что вы понимаете под «напрямую»? (Никогда просто не сталкивался с WebForms)
P.S. Это совсем не значит, что я с вами не согласен, просто пример особо интересных случаев :)
Это не так, достаточно просто написать:
Удачи вам, от всей души, это, как оказалось, не самое простое занятие :(
Или вы про запуск контейнеров через systemd? Я вот пишу про запуск юнитов изнутри контейнера…
Естественно все эти рассуждения нужны лишь если всё запускается демоном, в остальном не актуально ровно полностью.
P.S. Ковыряюсь в билдере контейнера, там вроде как есть методы {enter,leave}Scope, осталось придумать как входить в скоуп до создания скоупа реквеста.
P.S. В спринге это решается указанием области видимости сервиса: запрос, синглтон,…