cra*_*ter 10 symfony symfony-2.7
在symfony 2.3中,这是service.yml中的这一行来到翻译器
在service.yml
arguments: [@translator,....
Run Code Online (Sandbox Code Playgroud)
在serviceFunctions.php中
public function __construct(Translator $translator,...) {
$this->translator = $translator;
Run Code Online (Sandbox Code Playgroud)
现在我收到错误:
必须是Symfony\Component\Translation\Translator的实例,给出了Symfony\Component\Translation\DataCollectorTranslator的实例
如何在生产模式下使用2.7 in dev中的服务?
小智 18
尝试执行以下步骤:
类:
use Symfony\Component\Translation\TranslatorInterface;
public function __construct(TranslatorInterface $translator) {
$this->translator = $translator;
}
public function yourFunction(){
$this->translator->trans('key', array(), 'yourDomain');
}
Run Code Online (Sandbox Code Playgroud)
服务:
yourService:
class: yourClass
arguments: [@translator]
tags:
- { name : kernel.event_listener, event: kernel.request, method: yourFunction }
Run Code Online (Sandbox Code Playgroud)
我在我的代码中使用它,它的工作;)
尝试使用界面而不是实际的翻译类.通过将接口用作类型提示,只要它适合接口,就可以使用任何东西,例如,您可以在开发中使用常规调试转换器传入调试转换器,而无需更改代码.
use Symfony\Component\Translation\TranslatorInterface;
...
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9201 次 |
| 最近记录: |