symfony2.7 在服务容器中传递翻译器

标签 symfony symfony-2.7

在 symfony 2.3 中, service.yml 中的这一行可以找到翻译器

在 service.yml

arguments: [@translator,....

在 serviceFunctions.php 中
 public function __construct(Translator $translator,...) {
    $this->translator = $translator;

现在我得到错误:

must be an instance of Symfony\Component\Translation\Translator, instance of Symfony\Component\Translation\DataCollectorTranslator given



如何在生产模式下也能在 2.7 的 dev 中访问该服务?

最佳答案

尝试按照以下步骤操作:

类(class):

use Symfony\Component\Translation\TranslatorInterface;

public function __construct(TranslatorInterface $translator) {
    $this->translator = $translator;
}

public function yourFunction(){
    $this->translator->trans('key', array(), 'yourDomain');
}

服务:
yourService:
        class: yourClass
        arguments: [@translator]
        tags:
            - { name : kernel.event_listener, event: kernel.request, method: yourFunction }

我在我的代码中使用它并且它的工作;)

关于symfony2.7 在服务容器中传递翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188288/

相关文章:

symfony - 如何避免 Composer 中未绑定(bind)的版本约束?

error-handling - Symfony 3表单错误未显示在 Twig 模板中

mysql - 我想将 SQL 转换为 DQL

php - 如何避免将 attr 应用于我选择字段的所有选项?

logging - Symfony2 - 学说日志

php - SQLSTATE[HY000] : General error: 13 Can't get stat of './pics' (Errcode: 13 - Permission denied)

mysql - Doctrine Schema 对象创建和封装

php - Symfony2 @UniqueEntity 对 2 个外键的约束不起作用

php - 找不到 Symfony2.7.0 app_dev.php 路由

Symfony 2.7+ Assets 自定义版本策略配置