0
在Symfony1我这样做是通过使用:如何在Symfony2中从库中获取控制器/ i18n对象?
sfContext::getInstance()->getController()->...
sfContext::getInstance()->getI18N()->...
如何Symfony2的得到这个?
UPDATE: 在Symfony2中这是不可能的!
在Symfony1我这样做是通过使用:如何在Symfony2中从库中获取控制器/ i18n对象?
sfContext::getInstance()->getController()->...
sfContext::getInstance()->getI18N()->...
如何Symfony2的得到这个?
UPDATE: 在Symfony2中这是不可能的!
在你的控制器中,你可以做$this->get('translator')
。更多信息here。虽然没有理解控制器部分。
编辑:
样品服务实现会,
在你的类
namespace Your\Class\Namespace;
use Symfony\Component\Translation\TranslatorInterFace;
use Symfony\Component\HttpFoundation\Request;
class YourClass
{
private $translator;
private $request;
public function __construct(TranslatorInterFace $translator, Request $request)
{
$this->translator = $translator;
$this->request = $request;
}
public function aMethod(){
$translator->trans('key');
$session = $this->request->getSession();
}
//.....
}
添加按照services.yml
my_service:
scope: request
class: FQCN\Of\YourClass
arguments: [@translator, @request]
线,那么你的控制器,你Ç一个访问类使用,
$this->get('my_service');
$这只适用于控制器/视图。我需要从库/其他类获取控制器。这个怎么做? – RKI 2012-04-12 13:09:05
您必须将该类定义为服务容器并注入'@ translator'服务。见[这里](http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services) – 2012-04-12 13:14:13
看到我编辑的评论。 – 2012-04-12 13:24:05