https://github.com/ytake/Laravel-Aspect
https://www.slideshare.net/KenjiroKubota/laravel-aspect
引用 : https://camp.trainocate.co.jp/magazine/whats-aop-programming/
①アドバイス(Advice) | 処理内容を記述したものを「アドバイス」と呼びます。 |
②ジョインポイント(JoinPoint) | アドバイスを注入する場所を「ジョインポイント」と呼びます。 アドバイスを結合(ジョイン)する場所(ポイント)と覚えましょう。 |
③ポイントカット(PointCut) | アドバイスをジョインするポイントにおいて、処理を実行する条件などを指定したい場合もあるでしょう。 その指定方法を「ポイントカット」と呼びます。 |
アドバイスとジョンポイント、ポイントカットの覚え方 アドバイスとジョインポイント、ポイントカットはセットで覚える必要があるので注意しましょう。 覚え方のコツとしては、【ポイントカット】の場合、【アドバイス】を【ジョインポイント】へ注入するというように、ひとつの文章として覚えておくとよいでしょう。 |
|
④アドバイザ(Advisor) | 実際にAOPを実装する際には、アドバイスとポイントカットはセットで記述することになります。 アドバイスとポイントカットの両方をもつモジュールクラスを作成する場合、そのクラスを「アドバイザ」と呼びます。 |
⑤インターセプタ(Interceptor) | Interceptは「割り込み」の意味をもちます。 インターセプタは、本来はAOPの用語ではないため注意しましょう。 ただし、インターセプタの目的は「特定の処理に対して共通処理を注入する」であり、AOPにおけるアドバイザと同じような意味合いで利用されます。 ちなみに、AOPに非対応でもインターセプタをサポートしているフレームワークも多く存在します。 それらにあわせて、アドバイザのクラス名を「~Interceptor」とする場合もありますので、インターセプタの存在自体は覚えておいて損はないでしょう。 |
⑥プロキシとターゲット(Proxy , Target) | プロキシは「アドバイスをもつオブジェクト」、ターゲットは「プロキシされる(アドバイスが注入される)オブジェクト」を指します。 プロキシとターゲットは対になる単語ですので、こちらもセットで覚えておきましょう。 |