この記事では、ファルコンでオブザーバーモードを実装してイベントマネージャーを使用し、コードの例と組み合わせて重要な手順を表示する方法を説明します。
use Phalcon\Events\Event;
use Phalcon\Mvc\User\Component;
class MyListener extends Component
{
public function beforeNotify(Event $event, $source, $data)
{
echo "実行前,ソースオブジェクト:" . get_class($source) . ",データ:" . $data . "<br>";
}
public function afterNotify(Event $event, $source, $data)
{
echo "実行後,ソースオブジェクト:" . get_class($source) . ",データ:" . $data . "<br>";
}
}
このリスナーは、メソッドの前と午後の関連情報を出力します。
use Phalcon\Events\Manager;
$eventsManager = new Manager();
$myListener = new MyListener();
$eventsManager->attach('notify:before', $myListener);
$eventsManager->attach('notify:after', $myListener);
上記のコードは、 $ mylistenerを2つのイベントにバインドします。通知前と通知:後に、イベントがトリガーされると、リスナーが対応するメソッドを実行します。
$eventsManager->fire('notify:before', $someObject, 'Some Data');
$eventsManager->fire('notify:after', $someObject, 'Some Data');
ここでは、$ some objectはイベントのソースオブジェクトであり、 「一部のデータ」は渡されたデータです。リスナーは、この情報を処理するために、イベントタイプに従って対応する方法を呼び出します。
実行前,ソースオブジェクト:SomeObject,データ:Some Data
実行後,ソースオブジェクト:SomeObject,データ:Some Data