Wpis z mikrobloga

Siema mirki.
Robię taką trochę owijkę legacy code w komponenty symfony. Aktualnie jestem na etapie implementacji wstrzykiwania serwisów jako zależności do kontrolerów. Jednak w żadem sposób nie mogę wymusić automatycznego wstrzykiwania zależności (autowiring, autoconfigure), wszystko muszę opisywać w pliku services.yml, a i tak nie będę mógł później tego wstrzyknąć jako zależności do kontrolera.
Może ktoś, kto grzebał głębiej w symfony, będzie potrafił mi pomóc z tym?
W celu ułatwienia sprawy, dodaję repo na githubie: https://github.com/miedzwin/legacy-framework
Oraz wątek na stackoverflow: https://stackoverflow.com/questions/52221321/symfony-4-1-components-dependency-injection-issues

EDIT: aha, teraz przy próbie wstrzyknięcia serwisu mam:

Controller "App\Controller\IndexController::index()" requires that you provide a value for the "$testService" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one.An error occured.
#php #symfony #symfony4 #symfony3 #symfony2 #webdevhelp #webdev
  • 2
@mariecziek: Twoja usługa TestService też musi być zdefiniowana w services.yaml ze wszystkimi zależnościami i dopiero może być wstrzykiwana do kontrolera czy innych usług (tutaj public: true)
@picios: Tak, wiem, ale jeżeli w services.yml mam ustawione autowire: true, to wszystkie serwisy są ładowane do kontenera z tego pliku. Nie muszę tam rejestrować serwisów, jak to było w Symfony <3.3. One są rejestrowane automatycznie, na podstawie tego co jest zapisane w services.yml w linijkach 13-15. Mógłbym się z tobą zgodzić, gdyby do serwisu byłyby przekazywane jakieś argumenty w konstruktorze, ale serwis nie posiada konstruktora.
Kolejną rzeczą jest to,