2012-09-28 7 views
8

Mam opracowaną kontrolera za odpowiedzi na petycje AJAX przy użyciu JSON:Symfony2: określić, czy kontroler jest wywoływana z środowiskiem programistycznym lub środowisku produkcyjnym

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)); 

} 

mam włączoną widoku HTML, jak Jest bardzo przydatny do debugowania, ale chciałbym ograniczyć możliwość wywoływania tego kontrolera za pomocą _format = html podczas pracy aplikacji. Jak ustalić, czy kontroler jest wywoływany ze środowiska programistycznego lub środowiska produkcyjnego?

+0

http://stackoverflow.com/questions/8272090/get-environment-inside-controller – moonwave99

Odpowiedz

19

Odzyskać jądro z pojemnika serwisu i korzystać z wbudowanych metod:

$kernel = $this->get('kernel'); 
$kernel->isDebug(); // in most cases: false if env=prod, true if env=dev/test 
$kernel->getEnvironment(); // prod, dev, test 
Powiązane problemy