Tôi đang cố gắng nối vào các sự kiện giao diện điều khiển của symfonys với phiên bản tiêu chuẩn của symfony (2.3), nhưng nó sẽ không hoạt động.Làm cách nào để nghe các sự kiện trong symfony?
Tôi tạo ra một người biết lắng nghe theo example của họ và làm theo guides on event registration:
namespace Acme\DemoBundle\EventListener;
use Symfony\Component\Console\Event\ConsoleCommandEvent;
use Symfony\Component\Console\ConsoleEvents;
class AcmeCommandListener
{
public function onConsoleCommand(ConsoleCommandEvent $event) {
// get the output instance
$output = $event->getOutput();
// get the command to be executed
$command = $event->getCommand();
// write something about the command
$output->writeln(sprintf('Before running command <info>%s</info>', $command->getName()));
}
}
và ai đó trong danh sách gửi thư nói với tôi để đăng ký nó như sự kiện trong container dịch vụ. Vì vậy, tôi đã làm điều này:
services:
kernel.listener.command_dispatch:
class: Acme\DemoBundle\EventListener\AcmeCommandListener
tags:
- { name: kernel.event_listener, event: console.command }
Nhưng rõ ràng việc gắn thẻ không đúng và tôi không thể tìm thấy tên chính xác cho điều đó. Tôi sẽ làm như thế nào?
Bạn đang sử dụng 'ứng dụng php/bảng điều khiển' hoặc ứng dụng tùy chỉnh? – Touki
Tôi đang sử dụng phiên bản chuẩn của Symfony và muốn thêm sự kiện kích hoạt trước khi lệnh 'app/console' được thực hiện. Tôi đã yêu cầu trong nhóm symfony google và ai đó nói rằng tôi cần phải cấu hình nó bằng cách sử dụng một dịch vụ (như tôi đã thử ở trên). – acme