Ray.Aopを使うと、PHPでもAOP(アスペクト指向プログラミング)が使えます。 PHPの言語仕様にはAOP機能はありません。Ray.AopではどのようにAOPを実現しているのでしょう? AOPとは? 例えば、Ray.Aopを使うと、以下のようにアノテーションを指定することで、そのメソッドをインターセプトし、メソッド実行の前後に処理を追加することができます。 src/HelloService.php <?php class HelloService { /** * @Benchmark */ public function say() { return 'Hello World!'; } } 例えば、以下のようなインターセプターを作成しバインドすれば、メソッド実行の時間を計測して表示できます。 src/Benchmarker.php <?php use Ray\Aop\MethodIn
PHPカンファレンス関西2016 去年参加できなかったPHPカンファレンス関西に参加してきました。 conference.kphpug.jp その代わり今年は福岡に参加できませんでした。 今回は30分枠で設計寄りな[アスペクト指向によるアプリケーション拡張]で登壇しました。 日頃開発しているアプリケーションに、 アスペクト指向で取り上げられる関心毎を、 基盤的関心毎、ユースケースによる関心毎、 拡張の分離といった観点でお話しさせていただきました。 これらはアスペクト指向を取り入れるに当たって、大事なもの、 というわけではなく常につきまとう問題にどう立ち向かっていくか、というものです。 そして「サンプルを公開します!」の通り、 スライドの内容に合わせて、LaravelとLaravel-Aspectパッケージを利用した サンプルコードを公開してあります。 github.com アプリケーション
PHP Advent Calendar 2014の11日目です。昨日は普通じゃないモッキングフレームワークAspectMockがパワフル過ぎるでした。明日は @shin1x1 さんです。 おくすりをきめキメた。 経緯 AspectMockに続いて本日はAOPです。DIもあるよ。 去年のPHP Advent CalendarではRay.DiとRay.Aopをキメました。 cf. PHP でRay.DiとRay.Aopをやってみる http://c4se.hatenablog.com/entry/2013/12/20/015945 お花屋さんでWebサイトを作ってゐるうちにDIが欲しくなりPimpleを使うてゐましたが、いつか見たannotationでしゅるっとDIするやつやりたい>ω< でもアレめんどくさい><← といふのでPimpleを拡張して自作しました。 cf. PHPでDI (依存性
複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =
AOPとはアスペクト指向に基づいたプログラミングのことです。しかし「アスペクト指向」や「それに基づいたプログラミング」とは何でしょうか。 今までにAOPについて様々な文献を読んでみたけれど、よく理解できなかったという方もいらっしゃるのではないでしょうか。何を隠そう、筆者も最初はよく理解できませんでした。 でも、それもそのはず、AOPを解説する人の多くは、アスペクト指向の思想や未来を含めて語っているからです。読者の多くは思想や未来はいいから、今の開発現場にAOPを取り入れると何ができるのか、取り入れると何がよいのかなどを知りたいのだと思います。今回はなるべく思想や哲学を除外した形でAOPの疑問に応えていきます(注1)。 ※注1: 本連載ではアスペクト指向について用語も含め意訳して記述しています。アスペクト指向について正しく学びたい方は「アスペクト指向入門 千葉滋著 技術評論社」を是非お読みく
Introduction AOP is a PECL extension that enables you to use Aspect Oriented Programming in PHP, without the need to compile or proceed to any other intermediate step before publishing your code. The AOP extension is designed to be the easiest way you can think of for integrating AOP to PHP. AOP aims to allow separation of cross-cutting concerns (cache, log, security, transactions, ...) PHP's AOP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く