Tôi đã phát triển Bộ điều khiển để đáp ứng các yêu cầu AJAX bằng JSON:
lớp PeopleController mở rộng Bộ điều khiển
{
danh sách chức năng công cộngAction()
{
$request = $this->getRequest();
// nếu ajax chỉ được sử dụng thì bỏ ghi chú các dòng tiếp theo
//if (!$request->isXmlHttpRequest())
//throw $this->createNotFoundException('Không tìm thấy trang này');
$repository = $this->getDoctrine()->getRepository('PeopleManagerBundle:People');
$items = $repository->findAll();
// vâng, ở đây chúng tôi đang truy xuất "_format" từ định tuyến. Trong trường hợp của chúng tôi, đó là json.
$format = $request->getRequestFormat();
return $this->render('::base.'.$format.'.twig', array('data' => $items));
}
Tôi đã bật Chế độ xem HTML vì nó hữu ích cho việc gỡ lỗi, nhưng tôi muốn hạn chế khả năng gọi Bộ điều khiển này bằng _format=html khi ứng dụng đang được sản xuất. Làm cách nào để xác định xem Bộ điều khiển được gọi từ môi trường phát triển hay môi trường sản xuất?
Truy xuất kernel từ vùng chứa dịch vụ và sử dụng phương thức tích hợp sẵn:
$kernel = $this->get('kernel');
$kernel->isDebug(); // trong hầu hết các trường hợp: false if env=prod, true if env=dev/test
$kernel->getEnvironment(); // sản xuất, phát triển, kiểm tra
Tôi là một lập trình viên xuất sắc, rất giỏi!