[Symfony2][Symfony][SF]Cannot autowire service/but no such service exists |
[Symfony2][Symfony][SF]Cannot autowire service/but no such service exists |
5.07.2018, 18:24:53
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.08.2017 Ostrzeżenie: (0%) |
Próbuje wstrzyknąć obiekt do service ale niestety wyskakuje mi błąd: Cannot autowire service ... but no such service exists :
"Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\AutowiringFailedException' with message 'Cannot autowire service "AppBundle\Service\ValidResponse": argument "$filter" of method "__construct()" references class "Symfony\Component\HttpKernel\Event\FilterResponseEvent" but no such service exists. It cannot be auto-registered because it is from a different root namespace.' in C:\xampp\htdocs\heroku\testsymf\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\AutowirePass.php:285 Stack trace: #0 C:\xampp\htdocs\heroku\testsymf\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\AutowirePass.php(217): Symfony\Component\DependencyInjection\Compiler\AutowirePass->autowireMethod(Object(ReflectionMethod), Array) #1 C:\xampp\htdocs\heroku\testsymf\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\AutowirePass.php(140): Symfony\Component\DependencyInjection\Compiler\AutowirePass->autowireCalls(Object(ReflectionClass), Array, Array) #2 in C:\xampp\htdocs\heroku\testsymf\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\AutowirePass.php on line 285"
|
|
|
6.07.2018, 11:54:42
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) |
A jaki efekt chcesz uzyskać? Eventów nie używa się w ten sposób, tu masz przykład:
https://symfony.com/doc/current/event_dispa...er_filters.html |
|
|
7.07.2018, 17:52:52
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.08.2017 Ostrzeżenie: (0%) |
Ok. Ale jak Chce wskrzyknąć inny obiekt , który nie jest Eventem a także service wtedy mi też błąd taki wyskoczy. To jak stworzyć z jakiegoś obiektu Service.Tak abym mógł go wstkrzynąć?
Chce przefiltrować dane z obiektu response? Po prostu mieć dostęp do tych danych . Jak to zrobić? Ten post edytował symer 7.07.2018, 17:53:59 |
|
|
7.07.2018, 22:20:03
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) |
Cytat Ale jak Chce wskrzyknąć inny obiekt , który nie jest Eventem a także service wtedy mi też błąd taki wyskoczy - nie wyskoczy, jeśli ten obiekt może być serwisem. W komunikacie wyjątku jest podpowiedź. Jeśli masz normalny serwis utworzony np. w namespace /App/Service to możesz go wstrzykiwać do innych serwisów.Cytat Chce przefiltrować dane z obiektu response? - a skąd się bierze ten response? Logika tworzenia aplikacji www jest taka, że najpierw tworzy się response a potem wysyła go do przeglądarki. Oczywiście są wyjątki, np. mamy bibliotekę, która nam generuje odpowiedzi ale nie chcemy/nie możemy jej zmieniać.Wtedy z pomocą przychodzi wzorzec obserwator i jeśli biblioteka/framework to implementuje, to możemy zarejestrować odbiornik, przechwycić odpowiednie zdarzenie i coś z nim zrobić. W Symfony lista zdarzeń jest tutaj: http://symfony.com/doc/current/reference/events.html Wystarczy się podpiąć pod odpowiednie zdarzenie i już masz dostęp do obiektu Response, zanim zostanie wysłany do przeglądarki. I oczywiście jest to zła praktyka. Ten post edytował Pilsener 7.07.2018, 22:21:24 |
|
|
8.07.2018, 07:34:08
Post
#5
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.08.2017 Ostrzeżenie: (0%) |
NO właśnie o to mi chodzi, że ten obiekt response jest generowany gdzie indziej. I po prostu Chciałem przefiltrować te dane i coś dorzucić do tego obiektu response i wtedy wysłać.
Taka ma być logika. To spróbuje za pomocą tego obserwatora. |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 11:55 |