ホームページ >バックエンド開発 >PHPチュートリアル >SymfonyイベントディスパッチャーをPHPに使用する方法
Symfonyイベントディスパッチャーはオブザーバーパターンを反映しており、リスナーがイベントに反応できるようにします。 イベント、リスナー、ディスパッチャー自体の3つの重要な要素で構成されています。ディスパッチャーはイベントをトリガーし、関連するリスナーを実行します
キャッシュがクリアされたら、他のコンポーネントに通知する必要があると想像してください。 「キャッシュクリアされた」イベントを定義します。キャッシュをクリアした後、ディスパッチャーはこのイベントを提起し、登録されたリスナーにコンポーネント固有のキャッシュパージを実行するようにトリガーします。 このチュートリアルは、インストールと構成から始まり、実用的な例を提供する基本をカバーしています。 インストールと構成
コンポーザーがインストールされていると仮定して、このコマンドを使用してください:
これにより、が生成または更新されます。これは次のことに似ています
自動装置で
を強化:composer require symfony/event-dispatcher
composer.json
AutoLoader:
{ "require": { "symfony/event-dispatcher": "^5.4" } }
さて、EventDispatcherクラスの使用準備が整いました。 イベントとリスナーのクラスを作成してから、それらを接続します
composer.json
{ "require": { "symfony/event-dispatcher": "^5.4" }, "autoload": { "psr-4": { "EventDispatchers\": "src" }, "classmap": ["src"] } }
composer dump -ocreate
:
basic_example.php
メソッドはイベントの伝播を停止します。 メソッドは、伝播が停止したかどうかをチェックします
PHPクロージャーをリスナーとして使用してくださいbasic_example.php
<?php // basic_example.php require_once './vendor/autoload.php'; use Symfony\Component\EventDispatcher\EventDispatcher; use EventDispatchers\Events\DemoEvent; use EventDispatchers\Listeners\DemoListener; // Initialize event dispatcher $dispatcher = new EventDispatcher(); // Register listener for 'demo.event' $listener = new DemoListener(); $dispatcher->addListener('demo.event', [$listener, 'onDemoEvent']); // Dispatch the event $dispatcher->dispatch(new DemoEvent(), DemoEvent::NAME);オブジェクトの代わりに、PHPクロージャーはリスナーとして機能します:
stopPropagation()
isPropagationStopped()
結論
Symfonyイベントディスパッチャーは、PHPでのイベント駆動型プログラミングを促進し、緩やかに結合しやすく、簡単に保守可能なアプリケーションを作成します。 これにより、コンポーネントは直接的な依存関係なしに効果的に通信できます
以上がSymfonyイベントディスパッチャーをPHPに使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。