Ho questo codiceSymfony 3, DI - Aggiungi servizio per argomento
services:
repo.game:
class: Doctrine\ORM\EntityRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- AppBundle\Entity\Game
file.upload.listener:
class: AppBundle\Listener\FileUploadListener
arguments: [@repo.game]
tags:
- { name: "kernel.event_listener", event: "oneup_uploader.post_upload", method: "onUpload" }
Questo ha funzionato bene in < = 2.8, ma qui a 3.0 ho ricevuto questo messaggio di errore
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException] The file "/ext/thing/app/config/services.yml" does not contain valid YAML.
[Symfony\Component\Yaml\Exception\ParseException] The reserved indicator "@" cannot start a plain scalar; you need to quote the scalar at line 14 (near "arguments: [@repo.game]").
Ther e nient'altro nel mio file /ext/thing/app/config/services.yml
E 'stato deprecato in 2.8 e rimosso in 3.0 (https://github.com/symfony/symfony/blob/2.8/src/Symfony/Component/Yaml/Inline.php# L239-L245). Basta citare il tuo servizio come 'argomenti: ['@ repo.game']' e dovrebbe passare. – qooplmao
E per la situazione 'double/single quotes' ..." usando le virgolette singole è più facile delle virgolette IMO: le virgolette in Yaml richiedono di sfuggire a molti caratteri nella stringa, mentre le virgolette singole devono solo sfuggire alle virgolette stesse (mediante raddoppiandoli) "(citato da https://github.com/symfony/symfony-demo/issues/246#issuecomment-157686459) – qooplmao
Una volta superato il problema @, probabilmente riceverai un errore su factory_service. Dovresti usare factory, http://symfony.com/doc/current/components/dependency_injection/factories.html – Cerad