/ / Symfony Bundle faz referência a “@Bundle” - FileLocatorFileNotFoundException - symfony, symfony-3.3

Referências do pacote Symfony “@Bundle” - FileLocatorFileNotFoundException - symfony, symfony-3.3

Atualmente estou construindo meu próprio pacote Symfony (estou usando a versão 3.3). Funciona bem até agora, mas agora eu queria mover a definição de serviço específica do pacote para fora do meu app/config/services.yml para uma definição de serviço dentro do pacote.

Eu criei um src/MyBundle/Resources/config/services.yml e seguiu o guia Como carregar a configuração do serviço dentro de um pacote para carregá-lo. Isso funciona muito bem, mas eu pensei que os caminhos dentro do recém-criado services.yml parece um pouco feio:

MyBundle:
resource: "../../*"
exclude: "../../{Tests}"

Então eu pensei que seria um pouco mais limpo, se eu usar o @Bundle-notação em vez disso:

MyBundle:
resource: "@MyBundle/*"
exclude: "@MyBundle/{Tests}"

No entanto, do que eu estava enfrentando o erro:

FileLocatorFileNotFoundException

O arquivo "@MyBundle" não existe (em: <...>MyBundleDependencyInjection/../Resources/config), Onde <...> corresponde a um caminho absoluto.

Eu também testei se era um problema de nomeação do nome do pacote, mas quando eu tenho uma referência de bundle nomeada incorretamente no app/config/services.yml, por exemplo. @SomeBundleThatDoesNotExist então eu recebo um erro diferente:

FileLoaderLoadException

O pacote "SomeBundleThatDoesNotExist" não existe ou não está ativado.

Então, minha pergunta é: por que o @Bundle-notação funciona bem no app/config/services.yml mas não no src/MyBundle/Resources/config/services.yml?

Respostas:

0 para resposta № 1

Se você usar o serviço, lembre-se de torná-lo público para uso externo:

autowire: true

public: true

Mas, se o seu symfony não sabe onde está o pacote, por favor chec esta resposta:

O Pacote Gerado pelo Symfony não funciona