Я никогда не делал ничего управляемого событиями в PHP, только Node.js, поэтому я пытаюсь понять, как работают системы диспетчеризации событий в PHP (например, события Laravel, События CakePHP и диспетчер событий Symfony).
Этот пример находится в документации Laravel:
protected $listen = [
'App\Events\OrderShipped' => [
'App\Listeners\SendShipmentNotification',
],
];
Поскольку время жизни PHP-скрипта, работающего на Apache, в основном равно времени жизни запроса, означает ли это, что все прослушиватели событий создаются с каждым запросом?
Итак, если у меня есть 120 слушателей в моем приложении (т.е. перечисленных в этом свойстве $listen
), будут ли все 120 из них создаваться каждый раз при посещении страницы? Или объекты прослушивателя создаются только тогда, когда отправляются соответствующие события?
Кажется довольно неэффективным, чтобы слушатели создавались с каждым запросом, когда за всю продолжительность запроса может не быть запущено ни одного события.
Это то, о чем я вообще должен беспокоиться?