自己レスです。
下記で公開されているソースを読むと、packageのcontroller.phpでon_start()メソッドに
Events::addListener(’イベントフック名’, 処理を行う関数)
と書けば、イベント発火時の処理が登録されるようです。
http://github.com/ExchangeCore/Concrete5.7-text-icons/blob/master/accessibility/controller.php
前述の公式サイトもそう書かれていますね。
ただ、公式サイトのサンプルが、(英語力不足で?)よく理解できていません。
1つ目のサンプルコードは、前述の通りの事が書かれているのですが、
その後で、
Let's do this:
の後に書かれているサンプルの意味が分かっていません。
#この部分に該当する記述が、前述のgithubのコードには存在しない事もあって理解に及んでいません。
そして、'on_user_login'というイベントをパッケージのon_start()メソッド内でaddListenerしても、タイミング的に効果があるのか?などが、分かっていません。
前述のgithubも含め、参考になるソースが幾つか見つけられつつあるので、近々試してみますが、
この辺みるといいよ!
がありましたら、随時募集中です。
パッケージからイベントリスナーの登録をするには?
2015年10月27日 at 13:43
ログイン時にイベント発火する処理を
application/bootstrap/app.php
に
Events::addListener('on_user_login', function($event) {
・・・処理・・・・
}
というような記述をして開発を進めているのですが、
このイベント時の処理をパッケージから追加したいと考えています。
上記のように、イベントに対するaddListener()は、
application/bootstrap/app.php
に書く事に成っているとすると、パッケージから追加するにはどのようにパッケージのインストールスクリプト(controller.php)に記述すればいいのか、ご教示頂けないでしょうか?
もしくは、それ以外の方法で、addListener()を設定する方法がありますでしょうか?
また、該当パッケージを削除した際には、このイベントフックも削除しないといけないかと思いますので、合わせて教えて頂けないでしょうか?
自分がやりたい事は、本家のURLだと、
http://www.concrete5.org/documentation/developers/5.7/packages/adding-custom-code-to-packages/
に書いてあると思うのですが、
この本家に書かれている内容が、いまひとつ飲み込めなく、咀嚼できておりません。
タグ:
Your post has been saved and will be published after approval by the forum moderator.
多摩勉強会/遠藤
Re: パッケージからイベントリスナーの登録をするには?
環境は、5.7.5.2 と成ります。