Tôi muốn biết liệu tôi có đang sử dụng app_dev.php từ bên trong trình nghe (thiết lập dưới dạng dịch vụ trong config.yml
) hay không. Nó thất bại tại getEnvironment() mặc dù đây là phương pháp tôi sử dụng trong bộ điều khiển.Symfony2 nhận môi trường hiện tại trong trình nghe phản hồi
public function onKernelResponse(FilterResponseEvent $event) {
$kernel = $event->getKernel();
$this->isAppDev = ($kernel->getEnvironment() == "dev") ? true : false;
}
Sửa Giải pháp: Trong lớp người nghe tôi:
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\Kernel;
private $kernel;
public function __construct(Kernel $kernel) {
$this->kernel = $kernel
}
public function onKernelResponse(FilterResponseEvent $event) {
$this->isAppDev = ($this->kernel->getEnvironment() == "dev") ? true : false;
}
Ở dưới cùng của config.yml:
services:
my.listener:
class: Path\To\Listener
tags:
- { name: kernel.event_listener, event: kernel.response }
arguments: [@kernel]
Cảm ơn, đã sửa đổi câu hỏi của tôi để hiển thị các bước đó. – ojreadmore
@ojreadmore 1+ bờm! – mate64