Symfony 4 服务别名
Symfony 4 service alias
我有捆绑服务
@sonata.page.twig.extension
这是私人的。
我需要设置为 public。
尝试 1。
Sonata\PageBundle\Twig\Extension\PageExtension:
alias: "@sonata.page.twig.extension"
public: true
得到
InvalidArgumentException
Unable to replace alias "Sonata\PageBundle\Twig\Extension\PageExtension" with actual definition "@sonata.page.twig.extension".
尝试 2
mea.sonata.page.twig.extension:
alias: "@sonata.page.twig.extension"
public: true
同样的错误
确定找到解决方案
Sonata\PageBundle\Twig\Extension\PageExtension:
alias: 'sonata.page.twig.extension'
public: true
为什么有时候@sonata.page.twig.extension 有时候sonata.page.twig.extension
在此示例中阐明“@”的用法:“@sonata.page.twig.extension”
没有它,您就是在告诉容器传递字符串 sonata.page.twig.extension.
有了它,你告诉容器传递服务 sonata.page.twig.extension.
从文档中,查看代码中的以下注释:https://symfony.com/doc/current/service_container.html
# explicitly configure the service
App\Service\MessageGenerator:
arguments:
# the '@' symbol is important: that's what tells the container
# you want to pass the *service* whose id is 'monolog.logger.request',
# and not just the *string* 'monolog.logger.request'
$logger: '@monolog.logger.request'
我有捆绑服务
@sonata.page.twig.extension
这是私人的。
我需要设置为 public。
尝试 1。
Sonata\PageBundle\Twig\Extension\PageExtension:
alias: "@sonata.page.twig.extension"
public: true
得到
InvalidArgumentException
Unable to replace alias "Sonata\PageBundle\Twig\Extension\PageExtension" with actual definition "@sonata.page.twig.extension".
尝试 2
mea.sonata.page.twig.extension:
alias: "@sonata.page.twig.extension"
public: true
同样的错误
确定找到解决方案
Sonata\PageBundle\Twig\Extension\PageExtension:
alias: 'sonata.page.twig.extension'
public: true
为什么有时候@sonata.page.twig.extension 有时候sonata.page.twig.extension
在此示例中阐明“@”的用法:“@sonata.page.twig.extension”
没有它,您就是在告诉容器传递字符串 sonata.page.twig.extension.
有了它,你告诉容器传递服务 sonata.page.twig.extension.
从文档中,查看代码中的以下注释:https://symfony.com/doc/current/service_container.html
# explicitly configure the service
App\Service\MessageGenerator:
arguments:
# the '@' symbol is important: that's what tells the container
# you want to pass the *service* whose id is 'monolog.logger.request',
# and not just the *string* 'monolog.logger.request'
$logger: '@monolog.logger.request'