Tôi đang sử dụng symfony 2 và chúng tôi có 2 cấu hình, dev và prod. Tôi cần phải biết nếu tôi có thể tìm ra một im sử dụng bên trong một thực thể hoặc mô hình.Truy cập biến môi trường AppKernel trong symfony 2
Tôi đang tìm một cái gì đó tương tự như mã này được tìm thấy trong AppKernel.php:
$this->getEnvironment()
Nếu tôi có thể nạp Kernel gọi này sẽ là tuyệt vời nhưng tôi không thể tìm thấy một cách để làm điều này. Sau khi nhìn vào điều này, có vẻ như các sự kiện của symfony có thể trả về Kernel nhưng tôi không biết làm thế nào hoặc ở đâu để nắm bắt các sự kiện này để tôi có thể gọi hàm getKernel() trên chúng. http://symfony.com/doc/current/book/internals.html
Ví dụ, họ liệt kê ví dụ này:
sử dụng Symfony \ Component \ HttpKernel \ Event \ FilterControllerEvent;
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event->getController();
// ...
// the controller can be changed to any PHP callable
$event->setController($controller);
}
Không rõ ràng nơi tôi đặt khối mã này. Dường như với tôi rằng nó nên đi trong hạt nhân, và nếu tôi có hạt nhân tôi sẽ không gặp vấn đề này.
Câu hỏi của tôi là, có cách dễ dàng để tôi xác định xem mình có đang ở 'dev' hoặc 'prod' như được đặt trong hạt nhân hay không, từ Dịch vụ hoặc Mô hình. Cảm ơn
Vâng, cảm ơn bạn, điều đó đã sẽ làm việc độc đáo với một chút refactoring – ContextSwitch
Tôi đang sử dụng Symfony 2,6 và tôi phải làm: $ kernel = $ this-> container-> get ('kernel'); – Dominick