8

JSON を使用して AJAX 請願に応答するためのコントローラーを開発しました。

class PeopleController extends Controller
{
public function listAction()
{
    $request = $this->getRequest();

    // if ajax only is going to be used uncomment next lines
    //if (!$request->isXmlHttpRequest())
    //throw $this->createNotFoundException('The page is not found');

    $repository = $this->getDoctrine()->getRepository('PeopleManagerBundle:People');
    $items = $repository->findAll();

    // yes, here we are retrieving "_format" from routing. In our case it's json
    $format = $request->getRequestFormat();

    return $this->render('::base.'.$format.'.twig', array('data' => $items));

}

HTML ビューはデバッグに非常に便利なので有効にしましたが、アプリの運用中に _format=html を使用してこのコントローラーを呼び出す可能性を制限したいと考えています。コントローラーが開発環境から呼び出されたのか、実稼働環境から呼び出されたのかを判断するにはどうすればよいですか?

4

1 に答える 1

19

サービスコンテナからカーネルを取得し、組み込みのメソッドを使用します。

$kernel = $this->get('kernel');
$kernel->isDebug(); // in most cases: false if env=prod, true if env=dev/test
$kernel->getEnvironment(); // prod, dev, test
于 2012-09-28T12:18:06.157 に答える