Symfony1では、次を使用してこれを行います。
sfContext::getInstance()->getController()->...
sfContext::getInstance()->getI18N()->...
Symfony2でこれを取得するには?
更新: Symfony2 では、これは不可能です!
コントローラーでできること$this->get('translator')
. 詳細はこちら。ただし、コントローラー部分はわかりませんでした。
編集:
サンプルサービスの実装は、
あなたのクラスで
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');