PHPフレームワーク(Maple)
日本発のもう一つの有名なフレームワーク、Mapleを調べてみました。確認したMapleのバージョンは、以下の通りです。
Maple 3.1.1
PHP対応バージョン
以下の動作環境を見る限り、PHP4およびPHP5に対応しています。
ただしPHP4、PHP5の両方で利用可能なので、PHP5で新たに追加された機能などを利用できません。PHP5対応版Mapleがあると一番嬉しいんですけどね。
依存ライブラリ
以下のライブラリに依存しており、インストールしておく必要があります。
アーキテクチャ
Maple Wikiに詳しく書かれてありますので、そちらを参考にして下さい。
先に調べたEthnaと同じく、MVCアーキテクチャ、同じ考え方に基づいたフレームワークだと言えます。
Mapleでは、Mapleコア、Filter、Actionをプレゼンテーション層(クライアントからのリクエストを受付、処理結果をクライアントに出力する)として考え、サービス層およびドメイン層はComponentを使用します。そしてComponentを手軽に管理・使用ができるDIContainerという機構を持っています。
DIContainerについては、Seasarのサイトですが詳しく書かれているので、参考にして下さい。
ライセンス
PHP Licenseを採用しています。詳細は、Open Source Initiative OSI - The PHP License 3.0:Licensingを参照して下さい。
開発体制
SourceForge.jpのMapleのプロジェクトの開発者情報を見る限りだと、3人がコミッタとしている感じでしょうか?若干開発は停滞気味ですが、完全に開発が滞っているわけではなく、少しずつ開発は進んでいるようです。
サポート機能
MVCアーキテクチャに、基本的な機能(ConvertやValidateなど)が組み込まれており、設定ファイル(maple.ini)にて各種設定を施すことになります。それ以外にもたいていのフレームワークには組み込まれている以下の機能もあります。
- フィルタ機能
- ログ機能
- 二重Submit防止機能
- Token処理
Maple独自の機能(コンポーネント)は以下の通りになります。
- ActiveGateway
- DBへのアクセスを行うコンポーネント
- Ruby on RailsのActiveRecordの考え方に基づいている
- Maple Wiki - 拡張/Db/ActiveGateway
サイト上よりもムックに掲載されている記事の方がActiveGatewayの利用方法が詳しく説明が書いてありますので、そちらを参考にした方が理解しやすいと思います。
注意事項としてサイト内に以下の記述が書かれてありますので、現時点で本番環境で利用するのは注意して下さい。というよりも利用できないかもしれないですね。
ActiveGatewayは現在仕様を検討するためにアップしているものであり、もし動作確認をされる場合は、完全に隔離されたテスト環境を作成してそちらで確認をするようにお願いします。テストはしておりますが、既にあるDB環境で動作させるほどの品質ではないと考えています。(くれぐれも本番投入といったことは避けてください・・・)
ちなみにMapleの最新版のソースをざっと見た限りではActiveGatewayは含まれていませんので、上記サイトからダウンロード、インストールする必要があります。各種コンポーネントは、Mapeとは独立しているようなので、都度インストール、ダウンロードが必要のようです。
ムックの方も読んだのですが、肝心な複数テーブルのjoinについて書かれていないのは、かなり残念です。最大の利点と言ってるのなら書いて欲しかった。紙面の都合上、仕方がないのかもしれませんが。
他にもいくつか拡張機能が以下にあります。
何をもって利用できる拡張機能なのか判断することが難しいので、ここら辺は簡単に導入しますとはなかなか言いづらいかもしれません。
マニュアル、リファレンス
導入事例
導入事例みたいなものは少ないみたいですね。載っていたのは、以下のサイトだけでした。ちょっと寂しいですね。