トップ  > OpenPNE3  > ソース・表現  > 記事

No.2723 【OP3TIPS】イベントフックの方法

【OP3TIPS】イベントフックの方法

※自分の技術メモとして

OpenPNE3では、取り付けるプラグイン側からOpenPNE本体の挙動を変えることができるようになる。

その中でも便利だと思うのがイベントフック。

たとえば、
・日記が書かれたらメールで通知したい
・メンバーが参加したら紹介文を書きたい
・退会したら連動して外部のデータも削除したい

こんな拡張をしたいとする。
Ver3からは、プラグインを追加することでこうしたイベントが発生する前後にフックをかけ、機能を付け足すことができるようになる。

それもOpenPNE3本体のソースコードをいじらずに。
本体のソースをいじらないということは、OpenPNEのバージョンアップに追従するカスタマイズが可能ということ。

さて、イベントフックの方法だが、これがかなり簡単。
以下のサンプルでイメージがつかめるのではないか?

$this->dispatcher->connect(’op_action.post_execute_communityTopicComment_create’,'func_a’);

// communityTopicComment モジュールの create アクション のpost_execute (実行後フック)

function func_a(sfEvent $event){
$request = $event['actionInstance']->getRequest();
$p = $request->getParameter(’xxxx’);
}

OpenPNE3のこの部分を見れば、イベント名がどのように命名されているかがわかる。
http://github.com/openpne/OpenPNE3/blob/master/lib/filter/opExecutionFilter.class.php#L47

symfonyのイベント機構を採用しているので、本家の詳しい解説が参考になる。
http://www.symfony-project.org/reference/1_4/ja/15-Events

http://www.symfony-project.org/jobeet/1_4/Doctrine/ja/20

引用元

更新:2010/06/23 10:13 カテゴリ: OpenPNE3  > ソース・表現 ▲トップ

Python

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0