やること、やりたい事が多くて時間が足りてません。PHP勉強会@東京が開催されました。#BEARSundayこんばんわ。ついて発表させていただきました。Groupさん、ありがとうございました。さんには発表前から後までフォローいただき非常にお世話になりました。ありがとうございました。いうことで、まだ開発途上のPHPフレームワーク「BEAR.Sunday」の勉強会ということでしたが、野心的でパワフルな方々が参加され、非常に面白い勉強会でした。アットホームな雰囲気で、濃い話が聞けたのはとても良かったです。私自身、BEAR.Sundayについて直接聞くのは、昨年末の前々回のSymfony勉強会、先月のSymfony勉強会に続いて3度目でしたが、やっとのことで、BEARの考え方がある程度理解できました。スタートラインに立てたかな、などと思っています。いっても、じゃあ他の人に説明してみて、と言われたらまだ出来ないので、これからも継続的にウォッチしたいとは思います。コトハジメ」というタイトルで発表した内容は、スライドを見ればなんとなく分かるかと思いますが、スライドには書ききれなかったことを補足したいと思います。呼ばれて飛び出てジャジャジャジャーン、@madapajaです。使って依存性の注入を行ってみました。インターセプターを使い、アスペクト指向プログラミングの体験を中心に進めてみたいと思います。前回の補足...と、その前に前回の補足を。後に実行するメソッド)の定義を行いました。今回のサンプルの場合、コンストラクタ上で呼び出しても挙動は変わりません。コンストラクタで行わないのか、その理由を3つほど考えてみました。(@koriymさんからもアドバイスをもらいました)1つめは、関心を分離させるためです。内でその構成されたオブジェクトに対しての初期化処理を記述することで関心を分離させられます。全ての依存が注入されているのが保証されています。Setterを使ったインジェクションも可能です。コンストラクタでも、Setterでも注入するという点では同じですし、挙動も基本的に変わりませんが、Setterインジェクションを行うことで、traitを利用しやすくなります。(実際に、BEAR.Sundayではtraitを利用して、テンプレートエンジンを注入したり、様々な箇所で使用されています。内でしか初期化できない処理も考えられるでしょう。同時にインターセプタを利用することが可能です。(逆に言えば、コンストラクタ内から別メソッド呼び出してもインターセプトされません。そのため、このアノテーション内では同時にインターセプトを利用することもできる、というわけです。sandboxアプリではDevModule(動作モード)がフレームワークモジュール、機能のモジュール、アプリケーションモジュール等をinstallしてます。するのかといった具合です。そのモジュール内では必要なDI、AOP設定を行います。2012とあるように、モジュールは関心ごとに分離すべきです。(今回はサンプルなので...)Ray.Diには、あるモジュールの中から他のモジュールをインストール(追加設定のような感じ)する機能があります。機能・関心ごとにモジュールを分離させることで、たとえば、実行(本番、テスト、開発)モードが要求する機能や関心を、必要に応じて構成させることができるようになります。これは、下のつぶやきにもあるように、BEAR.Sundayの大きな特徴の一つです。2012すべてのメソッドにインターセプタをバインドしてみるでは、ようやく本編です。夏はやっぱり生ビール、@madapajaです。