考える力

たくさんの人があつまると考える力が増しますね。id:hawkringさんやid:bobchinさんからいろいろな問題点や考察がでてくるのは本当に参考になりますです。

クラス名が長くなってしまう問題はちょっとしたアイディアがあります。長らくあたためちゃっているAOPを実現するために、元となるクラスを読み込んでフックを入れた状態のものを吐き出して、吐き出したものからオブジェクトを生成してDIContainerに叩き込むということをもくろんでいるんですが、その書き換える際にクラス名を書き換えちゃえ!っていうもの。

つまり、「Foo」というクラスを「components/aaa/bbb/ccc/」に配置していたら、DIContainerに叩き込む前に「Aaa_Bbb_Ccc_Foo」って書き換えてそれを使うと。(基点となるディレクトリは切り替え可能にしないといけないですね)

他の人が作った便利なコンポーネントを自分の好きな場所におけば、クラス名は勝手にそれに併せてDIContainer+AOPが処理するって感じですね。ディレクトリが違えばクラス名がバッティングすることは絶対になくなるし、クラスを作るときには他とかぶらないように気を付けないでいいので、結構便利かなと思ったりします。(ちょっとした名前空間気分が味わえるかなと)

後はHawkさんが模索されている本質的な名前空間の仕組みが組み合わされれば結構いい感じになるんじゃないすかね。

DIContainer+AOPをつくっちゃうというのは本当にプログラムの方法を根本からひっくり返しそうな勢いです。Javaの世界でSeasarが大きな波をつくっているように、MaplePHPをひっくり返すようなものになるといいなーって思います。