PHPフレームワーク(Ethna)
まずはGREEでも利用されているフレームワーク、Ethnaから調べてみました。確認したのは以下のバージョンです。
Ethna 2.3.0 Preview2
PHP対応バージョン
PHP4およびPHP5に対応しています。ただしPHP4をベースが中心のようなので、PHP5でそのまま利用できるかは調査が必要です。ただ個人的な感覚では、よほどのことがない限りPHP5でも使えるとは思います。PHP5で新たに追加された機能などを利用できないので、そこがポイントになると思います。PHP5対応版Ethnaがあると一番嬉しいんですけどね。
依存ライブラリ
以下のライブラリに依存しており、インストールしておく必要があります。
個人的には、Smartyべったりで依存してしまっているのは、ちょっと何とかならないものかなと思います。テンプレートエンジンのシェアから言ったら仕方がないのかもしれませんが、自由度を少し持たせて欲しいところです。
アーキテクチャ
まず押さえておくべきポイントは、以下のMVCアーキテクチャだと言うことと、JavaのStrutsの構造を参考にして作成していることです。
後にJavaに移行したい場合、Strutsへの移行するのは容易かもしれませんね。(Strutsを採用するかは別として、フレームワークの枠組みに従った実装をしていれば、移行はより簡単になるはずです)
次に、Ethnaの動作イメージの概要ですが、公式サイトに分かりやすい形で詳しく書かれているので、そちらを参考にして下さい。
Strutsもしくはそれに類似したPHPフレームワークを利用したことがあれば、すんなりと理解しやすいかと思いますが、以下の機能について理解を押さえるとよいです。
- エントリポイント*1
- Contoller
- Action Form
- Action
- View
また開発の流れについては、公式サイトにチュートリアルがあるので、それに従って一通り作業を行ってみると分かりやすいと思います。
大ざっぱにまとめるとこんな感じの流れの繰り返しになると思います。
- アプリケーションのスケルトンの作成
- エントリポイントの設定
- コントローラにアクション定義を追加(省略可)
- アクションクラスの記述
- コントローラに遷移先のビュー定義を追加(省略可)
- ビュークラスの記述
- テンプレートの記述
あくまでシンプルな流れなので、実際にはもっと複雑になると思いますが、予想以上に簡単にできそうだとイメージが掴めるのではないでしょうか?(実際に手を動かさないとちょっとツライかもしれません)
後は上記の作業に加えて、別途、独自のユーティリティを実装したり、Actionから呼び出す実際のビジネスロジック部分(共通コンポーネントクラスなど)の作成がある、そんな感じです。
またアクション、ビュー、テンプレートの記述は、ethnaコマンドを利用すると簡単にスケルトンを作成することができ、かなり便利だと思います。(独自にスケルトンをカスタマイズすることも可能なようです)
また実際にEthnaを利用しての開発を行う場合、以下の開発マニュアルをざっと目を通しておくといいかもしれません。
ライセンス
BSD Licenseを採用しています。
オープンソースソフトウェアで使用されているライセンス体系のひとつ。無保証・免責を宣言し、再配布する際に著作権表示を行なうことのみを条件とする、極めて制限の緩いライセンスである。著作権表示さえしておけば、BSDライセンスのコードを他のプログラムに組み込み、しかも組み込み後のコードを非公開にできるため、商用化のしやすいライセンスである。また、GPLのように再配布時のライセンス条件を制限することもない。
開発体制
SourceForge.jpのEthnaのプロジェクトの開発者情報を見る限りだと、5人がコミッタとしている感じでしょうか?また定期的にリリースをしており開発が完全に停滞していません。バグフィックス、機能追加も行われているようです。
サポート機能
現時点でサポートしている機能は以下の通りです。
- 複数DBオブジェクト対応
- Session対応
- フィルタチェイン対応
- メール送信対応
- 二重POST防止対策
- ユニットテスト対応
- ログ出力対応
- SOAP対応
- XMLRPCにexperimental扱いで対応(2.1.0〜)
他にもあるかもしれませんが、とりあえずこんな感じです。
あと余談ですが、DB周りはMySQLに依存してる気がします。他のDBはそのまま使えないかもしれないので、調査した方がいいです。
導入事例
Ethna導入事例からの抜粋です。
- GREE
- 旅おく.com
- newsing
- YellowPress
- フォートラベル
- アメール
- Favorite どうじんゲー
- 八重山毎日オンライン
- Planet PHP Japan
- おたぬきの「ひとこと」(FLASH部分)やコラム更新など
特にGREEで使われているってところが一番大きいのではないでしょうか?
GREEに参加していない(誰か招待して下さい。:))ので、どの程度の規模のサイトなのか、よく分からないのですが、Alexaの情報(http://www.alexa.com/data/details/main?q=&url=http://www.gree.jp/)によると、以下のような感じだそうです。(単位は百万)
今日 | 1週間平均 | 3ヶ月間平均 | |
Reach | 350 | 420 | 465.5 |
Page Views | 9.1 | 9.1 | 8.6 |
かなりの大きな規模なので、大規模サイトでも全然利用可能だと思います。(単純にEthnaをフレームワークとして使えば、簡単に大規模サイトを構築できますよと言ってるわけではないので注意して下さい)
日本語の問題
日本発のフレームワークなので、他の海外製のフレームワークとは違い、日本語(というかマルチバイト系)の問題については考慮してあると思います。仮に問題があったとしても対応を行ってもらいやすいと思われます。ただし、PHP本体側に問題があった場合はその限りではないですが....