小堤です。
どーも、xFrameworkPXの開発になると寝られないんですね。。。
あんまり忙しくないときって、逆に寝られない率が高い・・・仕事ください(笑)
さて、xFrameworkPX 3.5を今開発していて、これは、来るPHP 6への対応です。
まぁPHPフレームワークとしては、CakePHPとかZend Frameworkとか有名ですが、まぁそのうち皆さんに受け入れてもらえればいいなぁと思いながら開発しています。
で、コンセプトは、「PHP6への移行バージョン」です。PHP 5.3と同じですかね。
xFrameworkPX 3.5の最大の特徴は、複数の動作モードです。社員もみてると思うので、ここにメモっときます(笑)
- TrunkモードとLegacyモード
これは、名前空間などPHP 5.3以降の新機能が使えるか使えないかです。Trunkモードは、PHP 5.3以降の環境でのみ動作します。それ以外はLegacyモードで動作します。
ブートストラップで設定もできますが、デフォルトでは自動判断されます。そしてモードごとにクラス名が異なります。
たとえば、モデルクラスを例に挙げると
Trunkモードの場合、\xFrameworkPX\Model\Model
Legacyモードの場合、xFrameworkPX_Model_Modelとなります。LegacyモードはZendフレームワークっぽいですね。
- Compatibleモード
Legacyモードで動作させているときに設定できます。
このモードを設定すると、xFrameworkPX 3.5より前のバージョンのコードを動作させることができます。Legacyモードの場合、アクションクラスは、xFrameworkPX_Model_Actionというクラス名になります。
しかし、前のバージョンでは、ただActionというクラスでした。
このままでは動かないので、Compatibleクラスというのが用意され、このCompatibleモードがONの時だけ読み込まれます。内部的にLegacyモード内で、前のバージョンコードを動かすためのクラスを生成(エミューレート)して、前のコードが動くようにします。
デフォルトでは、Trunkモード/Legacyモード(自動判定)、Compatibleモード:OFFになっています。必要に応じてブートストラップの引数で設定できます。
これから新たに作る!場合は、PHP 5.3以降の環境でTrunkモードで作成。
また、PHP 5.2.xで開発をしなくてはならない、レンタルサーバなどで動かない、けど、5.3でも動かしたい場合は、Legacyモード。
過去のコードを動かしながら、ちょっとずつ以降したい、場合はLegacy+Compatibleモード。
といった具合でしょうか。
ちなみに、サポートされるPHPのバージョンは、結構がんばっていてw PHP 5.1.6以降です。
これは、CentOSのデフォルトバージョンが5.1.6だから。こういうのって実際の開発現場の制限で結構引っかかったりするんでね。対応しますよ・・・SimpleXMLとかのパッチもがんばりますよw
弊社の場合は、最後のLegacy+Compatibleモードからの既存サイトの移行作業が増えるのかな?
で、もう一つの目玉ですが。
「xFrameworkPX Assistant」
です。
これは、コマンドラインで動作するソフトです。PHPでできてます。対話式になっていて、スケルトンの生成などをバシバシやってくれる、他のフレームワークとかにあるようなもんです。
前から作っているxFrameworkPX Studioは、Ext JSを使った、AssistantのGUI化+αのソフトウェアになります。
で、これらを一気にやってると、はや6日目ですが、ほとんど寝れません。あきたら寝ます(笑)
開発スケジュールは、ざっくり今月中に、社内向けのEarly Preview、その後、一般向けPreview、経て、Public Beta、RC、正式版って感じで。
年内には何とかしたいなぁ。正式版。
ちなみに、現在phpDocumentorではき出して、Ext JSのAPIみたくするを社内でやってもらったり、ユニットテストもできるようになったので、そこらへんやってもらったり、まぁ手伝ってもらいながらシコシコやってるわけです。
PHP 5.3 / PHP 6.0に向けてのPHP フレームワークとして、ちょっとか使ってもらえたらいいなぁと思っています。
まぁ、こんな感じで、僕の生息をこの、code:xで確認されている方が数名というかw結構いらっしゃるみたいでw
しばらく、あいちゃったので無理矢理書いてみました。
んじゃ、がんばります。。。