Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Frameworki _ [Symfony2][SF][SF2] EventListener problem

Napisany przez: damianooo 8.07.2022, 23:34:26

Potrzebuję podpowiedzi.
W starym projekcie Symfony (wersja 2.8) miałem EventListenera, który w pliku services.yaml był tak skonfigurowany:

services:
activity_listener:
class: %activity_listener.class%
arguments: [@security.context, @doctrine.orm.entity_manager]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onCoreController }


teraz w wersji 4.4 skonfigurowałem tak:

App\EventListener\ActivityListener:
arguments: [@security.context, @doctrine.orm.entity_manager]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onCoreController }


i niestety coś jest nie tak bo dostaję błąd:

The file "C:\xampp\htdocs\ligatyperow2\config/services.yaml" does not contain valid YAML: The reserved indicator "@" cannot start a plain scalar; you need to quote the scalar at line 33 (near "arguments: [@security.context, @doctrine.orm.entity_manager]") in C:\xampp\htdocs\ligatyperow2\config/services.yaml (which is loaded in resource "C:\xampp\htdocs\ligatyperow2\config/services.yaml").

Napisany przez: jacek.e3 11.07.2022, 07:18:37

dodaj cudzysłowy tak jak Ci podpowiada błąd. Dodatkowo możesz też rozbić tą tablicę na elementy, dzięki czemu w razie błędu dostaniesz konkretną linijkę z jednym wpisem.
Podobnie zrób w tagach,

  1. App\EventListener\ActivityListener:
  2. arguments:
  3. - '@security.context'
  4. - '@doctrine.orm.entity_manager'
  5. tags:
  6. - { name: 'kernel.event_listener', event: 'kernel.controller', method: 'onCoreController' }


Napisany przez: damianooo 11.07.2022, 20:14:13

Dzięki, Działa.

Dodam tylko że musiałem jeszcze zmienić z:
http://php.net/'@security.context'

bo miałem błąd:

The service "App\EventListener\ActivityListener" has a dependency on a non-existent service "security.context" ''

końcowa wersja, która działa to taka:

  1. App\EventListener\ActivityListener:
  2. arguments:
  3. - '@security.token_storage'
  4. - '@doctrine.orm.entity_manager'
  5. tags:
  6. - { name: 'kernel.event_listener', event: 'kernel.controller', method: 'onCoreController' }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)