我有捆绑服务
@ sonata.page.twig.extension
它是私人的。
我需要设置为公开。
尝试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
相同错误
答案 0 :(得分:1)
没有它,您是在告诉容器传递字符串 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'
答案 1 :(得分:0)
确定找到了解决方法
Sonata\PageBundle\Twig\Extension\PageExtension:
alias: 'sonata.page.twig.extension'
public: true
为什么有时@ sonata.page.twig.extension有时sonata.page.twig.extension