PHPフレームワークは何がよいのだろうか?
簡単に現状を調べてみました。
PHPのフレームワークは、3つ主流となっているものがあります。
■3大フレームワーク
▼CakePHP
(PHP4、5対応/ライセンス:MITライセンス)
・アクティブ、フレンドリーなコミュニティ
・フレキシブルなライセンス
・PHPのバージョン4と5に対応
・データベースとのやり取りのための、CRUDが統合済み
・アプリケーションのscaffolding(足場組み)
・コード生成
・MVC アーキテクチャ
・クリーンでカスタマイズ可能なURLsとroutesを
用いるリクエストディスパッチャー
・バリデーションを内蔵
・高速で柔軟性のあるテンプレートシステム(PHP構文、各種ヘルパー)
・AJAX、JavaScript、HTMLフォーム、などなど各種のViewヘルパー
・Eメール、クッキー、セキュリティ、セッション、
リクエストハンドリングなどのコンポーネント
・柔軟なACL
・データのサニタイズ
・柔軟なキャッシュ
・ローカライゼーション
・どんなwebサイトdirectoryからでも動作。
Apacheの設定は最小限のみ
▼Zend Framework
(PHP5対応/ライセンス:PHPライセンス)
・単体テスト作成・実行
・メッセージキュー
・MVCパターン
・ルーティング機能
・PHP5対応
・コード生成
・キャッシュ
・AJAX(Dojo,JQuery)
・国際化
・全文検索
・PDF生成
・DBアクセスの抽象化
・プログレスバー表示
・JSON-RPC
・JQeuryサポート
・SOAPサーバ/クライアント
・オートディスカバリ
・WSDLアクセス/ジェネレーション
・コマンドラインインターフェース(Preview)
・プロジェクト資産管理(Preview)
・ファイル受信機能の強化
・AMF0とAMF3のサポート(Adobe AIR,Flashサポート)
・Tiwtterサポート
・Lucene 2.3インデックスフォーマット
・Captchaフォームエレメント
・Zend_Wildfireコンポーネント(Firebugログライター)
・Media Viewヘルパ(Flash,Quicktime,Objectとページ)
▼symfony
(PHP5対応/ライセンス:MITライセンス)
・シンプルなテンプレートとヘルパー
・キャッシュ・コントロール
・種々の環境(OS、データベース)に対応
・管理ツール(アプリケーションファイル群の管理――変更、更新など)
・scaffolding機能(データベースの基本操作に
必要なモジュールを自動生成する)
・スマートURL(設定ファイルによりURLの形式を決めることができる)
・多言語(I18N)対応
・オブジェクトモデルとMVC分離
・Ajaxサポート
・プラグインによる機能追加が可能
上記3大フレームワーク以外に、ここのところ急激にシェアを
のばしてきているのが、以前にも紹介したCodeIgniter(コードイグナイタ)です。
▼codeigniter
(PHP4、5対応/ライセンス:Apache/BSDスタイル)
・少ないメモリ(ディスク)で動くフレームワークを望む方。
・特別な(非凡な)パフォーマンスを望む方。
・PHP4または5の標準構成のWEBホスティングとの幅広い互換性を望む方。
・コンフィグ設定を限りなく触ることなく動くフレームワークを望む方。
・コマンドラインによる操作を必要としないフレームワークを望む方。
(※例:PEARチャンネルを使うインストールなどが無い)
・コーディング規約を硬く守ることを強要しないフレームワークを望む方。
・PEARのような大規模で一枚岩的なライブラリに興味を持っていない方。
・テンプレート言語の学習を強要されるのが嫌な方。
(お望みならばテンプレートパーサーを使うことは可能ですが。)
・複雑なものが嫌いで、シンプルなソリューションを望む方。
・明確で完全なドキュメント(仕様書)を望む方。
結局、上記のどのフレームワークがよいかは、下記を参考に
選ぶとよいでしょう。
(あくまで参考です。)
■フレームワークを選ぶ際のポイント
・必要な機能がフレームワークに含まれているか
・動作の安定性(導入実績)
・ドキュメントなど、WEB上での情報の多さ
・パフォーマンス
・開発効率
(コーディングの容易性、コードジェネレート機能、教育の容易さ等)
・メンテナンス性