php - 在普通类(class)内访问服务

标签 php symfony localization twig

我的 Symfony2 项目中有一个常规类:

    class RangeColumn extends Column{
        //...
    }

现在这个类里面有一个渲染函数,我想在这个函数中使用Twig或者Symfony2的翻译服务来渲染一个特定的模板。如何以正确的方式访问此服务?

最佳答案

代码示例:

<?php

class MyRegularClass
{
    private $translator;

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

    public function myFunction()
    {
        $this->translator->trans('sentence_to_translate');
    }
}

如果您希望您的类(class)成为一项服务: 在您的包中的 services.yml 文件中,

parameters:
    my_regular_class.class: Vendor\MyBundle\Classes\MyRegularClass

services:
    mybundle.classes.my_regular_class:
        class: %my_regular_class.class%
        arguments: [@translator]

有关更多详细信息,请参阅有关 Symfony2 的章节 Service Container

关于php - 在普通类(class)内访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953721/

相关文章:

php - 查询性能 - MySQL

PHP 数组 : integer index vs string index

javascript - 如何从 php 文件接收的 JSON 中检索对象?

php - 来自具有附加字段的实体的 Symfony 表单

Android 布局方向未在运行时语言更改时更新

php - 根据 HTML 选择框中的选择运行特定的 MySQL 查询

php - 使用 PayumBundle 注册自定义网关

php - 通过 KnpPaginatorBundle 使用多个模板

iphone - 为什么我的文件不移动到 "en.lproj",而是移动到 Xcode 中 "English.lproj"之后的新 "Make file Localizable"?

c++ - 在 icu::BreakIterator 中查找中断类型