Php 访问常规类内的服务
我在我的Symfony2项目中有一个常规课程:Php 访问常规类内的服务,php,symfony,localization,twig,Php,Symfony,Localization,Twig,我在我的Symfony2项目中有一个常规课程: class RangeColumn extends Column{ //... } 现在,在这个类中有一个render函数,在这个函数中,我想使用Twig或Symfony2的翻译服务来呈现特定的模板。如何以正确的方式访问此服务?使用。这是一个非常简单的概念 您只需向类传递(注入)所需的服务 如果依赖项是必需的则在构造函数中传递它们。如果它们是可选的则使用设置器 您可以更进一步,将类的构造委托给依赖项注入容器(从中生
class RangeColumn extends Column{
//...
}
现在,在这个类中有一个render函数,在这个函数中,我想使用Twig或Symfony2的翻译服务来呈现特定的模板。如何以正确的方式访问此服务?使用。这是一个非常简单的概念
您只需向类传递(注入)所需的服务
如果依赖项是必需的则在构造函数中传递它们。如果它们是可选的则使用设置器
您可以更进一步,将类的构造委托给依赖项注入容器(从中生成服务)
服务与你的“常规”课程没有什么不同。只是它们的构造被委托给了容器 代码示例:
<?php
class MyRegularClass
{
private $translator;
public function __construct(Translator $translator)
{
$this->translator = $translator;
}
public function myFunction()
{
$this->translator->trans('sentence_to_translate');
}
}
有关更多详细信息,请参阅关于Symfony2的章节依赖项注入标记是
@translator。默认情况下,@translator
标记是指现在登录translator。
parameters:
my_regular_class.class: Vendor\MyBundle\Classes\MyRegularClass
services:
mybundle.classes.my_regular_class:
class: %my_regular_class.class%
arguments: [@translator]