ウェブ制作といえば、多くの人がHTML、CSS、JavaScriptの他に、PHPを思い浮かべるはずです。
まことしやかに衰退が囁かれてはいますが、PHPは未だに健在です。FacebookやWikipediaのような大企業を含むあらゆるサイトで、今でも広く使われています。
W3Techsによると、PHPは全ウェブサイトの約79%で使用されているとのこと。サーバーサイドのプログラミング言語として最も近いライバルであるASP.NETの8倍もの人気があります。
PHPの利用シェアは昨年から一貫しています。
多くのPHP開発者がPHPフレームワークを利用しています。PHPフレームワークとは何か、なぜ使われるのか、そして最も人気のあるフレームワークは何なのか、その詳細に迫ります。
PHPフレームワークとは
PHPフレームワークは言うなれば、PHPウェブアプリケーションを作成するための枠組みです。PHPフレームワークでは、よく使う関数を使い回すことができ、最初から書かなければならないコードの量が圧倒的に少なくなります。
PHPフレームワークの強み
ゼロからコードを記述するよりも、PHPフレームワークを使う利点はたくさんあります。
1. 開発の高速化
PHPフレームワークにはライブラリやツールが組み込まれているため、開発にかかる時間が短くなります。
例えば、CakePHPにはBakeコマンドラインがあり、アプリケーションに必要なスケルトンコードを素早く作成することができます。
いくつかの人気のPHPフレームワークには、PHPUnitライブラリが統合されており、簡単にテストを行うことも可能です。
2.記述するコードの簡素化
フレームワークに組み込まれている関数を使うことで、自前のコードを大量に書く必要がなくなります。
3. 共通タスクのライブラリ
ウェブアプリケーション開発における多くのタスクに、共通性を見いだすことができます。例えば、フォームの検証、データのサニタイズ、CRUD操作(Create, Read, Update, Delete)など。これらのタスクのために自分で関数を書く必要はなく、フレームワークの一部として用意されている関数を使用すればOKです。
4. ベストプラクティス
PHPフレームワークは、通常、プログラミングのベストプラクティスに従い設計されています。たとえば、機能に応じてコードがディレクトリ毎に整理されます。
このディレクトリ構造により、コードがきれいになり、その後もルールに準拠したかたちでの編成が強制されます。
フレームワークにはまた、エンティティの命名規約があります。
5. 自力で構築するより安全
PHPには、クロスサイトスクリプティング、SQLインジェクション攻撃、クロスサイトリクエストフォージェリなど、セキュリティ上の脅威が多く存在します。コードの安全性を確保する適切な手順を踏まない限り、PHPアプリケーションは脆弱なままに。
PHPフレームワークの使用は、安全なコードを保証するものではありませんが、ハッカーに悪用される可能性を最小限に抑えることができます。優れたフレームワークには、データのサニタイズ機能が組み込まれており、上記のような一般的な脅威に対する防御策も用意されています。
6. チームワークの向上
複数の開発者が参加するプロジェクトでは、チームワークに力を入れないと、作業がうまく進みません。例えば、以下の点に注意することが重要です。
- ドキュメントの作成
- 設計上の決定事項の明確化
- コードの標準化
フレームワークを使用することで、プロジェクトに明確な基本ルールをもたらすことができます。たとえ、他の開発者がフレームワークに精通していなくても、すぐにノウハウを習得し、共同作業を進めることができるはずです。
7. メンテナンスが容易
PHPフレームワークは、コードのリファクタリング、そしてDRYな開発(Don’t Repeat Yourself)を促進します。その結果、無駄のないコードベースができ、メンテナンスの必要性が低くなります。
また、コアフレームワークのメンテナンスは、開発者が行ってくれるので、その点を心配する必要もありません。
PHPフレームワークを使用する前に知っておくべきこと
PHPフレームワークを使用する前に、まずPHPそのものについて理解を深めましょう。PHPを使いこなせないと、フレームワークの導入に苦労することになります。ほとんどのフレームワークが、PHPのバージョン7.2以降で動作します。
PHPについては、以下の記事をご覧ください。
- PHP学習に便利なサイト
- PHP 8.1(現在のバージョン)
- PHP 8.2(次期バージョン)
次に、自分でPHPアプリケーションを構築し終え、フロントエンドとバックエンドで何が必要かを明確に理解している必要があります。
また、最近のPHPフレームワークはオブジェクト指向のものが多いので、オブジェクト指向のPHPを理解しておくことも必須です。クラス、オブジェクト、継承、メソッド、トレイト、アクセス修飾子などの概念もおさえておきたいところ。
多くのウェブアプリケーションでデータベースとの接続を行うため、データベースとSQL構文についても学習が必要です。各PHPフレームワークには、それぞれサポートするデータベースがあります。
O/Rマッピング(ORM)モデルを理解しておくと便利です。ORMでは、SQLを使う代わりにオブジェクト指向の構文を用いてデータベースのデータにアクセスします。つまり、SQLの利用が求められるケースもあるかもしれませんが、基本的にはデータベースのクエリを使い慣れたPHPで書くことが可能になります。
多くのPHPフレームワークには、独自のORMが組み込まれています。たとえば、LaravelはEloquent ORMを使用しています。Doctrine のようなオープンソースのORMを使うものもあります。
ApacheやNginxのようなウェブサーバーの動作についても理解を深めておくことをおすすめします。アプリを動作させるために、サーバー上のファイルの設定も必要になることがあります。
おそらく開発の大部分をローカルで行うので、localhostについても知っておくのがいいでしょう。また、VagrantやVirtualBoxを使って仮想環境でアプリを作成し、テストすることも可能です。
MVCモデル
PHPフレームワークは、一般的にModel View Controller(MVC)モデルに従っています。このコンセプトの肝は、データの操作とその表示を分離することです。
モデルは、ビジネスロジックとアプリケーションデータを格納します。ここから、ユーザーが目にすることになるビューにデータが渡されます。これに対して指示を与える役割を果たすのが、コントローラです。このサイクルが繰り返されます。
一言で言えば、モデルはデータ、ビューは外観、コントローラは動作ということになります。
MVCモデルを例えるなら、バーでカクテルを注文するようなものです。
ユーザーは、バー(ビュー)にやってくる常連客です。バーテンダー(コントローラ)に飲み物の注文をします。
バーテンダーは、レシピ、材料、道具などを使い、注文を作成します。以下のように使うものは様々です。
- アルコール
- 果汁
- 氷
- レモン
- グラス
- カクテルシェーカー
- オリーブ
- かくはん棒
出来上がったカクテルはカウンターに置かれ、それを客(ユーザー)が楽しみます。別の飲み物を飲むには、バーテンダーに声をかけます。自分でミックスすることはありません。
PHPアプリケーションの用語で言うと、MVCは以下のようなものに相当します。
- モデル:データベース
- ビュー:HTMLなどのページ
- コントローラ:データベースへのアクセスや更新を行う関数
PHPフレームワークを利用する際に、コマンドラインインターフェース(CLI)が使えると便利です。Laravelには、独自のCLIとしてArtisanが用意されています。Artisanのmakeコマンドを使用すると、モデル、コントローラ、その他のコンポーネントを素早く構築することができます。
コマンドラインへの精通は、Composer(PHPパッケージマネージャー)を使う上でも重要です。Yiiなどのフレームワークでは、アプリケーションの実行に必要なパッケージである依存関係をインストールし、管理するのにComposerを使用します。
Packagistというサイトがあり、ここには、Composerでインストール可能な主要パッケージが保管されています。人気のComposerパッケージの中には、Symfonyで動作するものもあります。
PHPフレームワークの選び方
PHPフレームワーク選択のコツをいくつかご紹介します。
まずは、PHPフレームワークの初心者であれば、できるだけ学習が容易なものを選ぶよう、こころがけましょう。できるだけ早く実務まで移行したいところです。とは言え、PHP自体は学習しやすいプログラミング言語のひとつです。
次に、使いやすく、手間の削減に貢献するフレームワークが必要です。
そして、PHPフレームワークは、プロジェクトに必要な技術的要件を満たす必要があります。ほとんどのフレームワークでは、最低限のPHPバージョンと、対応する特定のPHP拡張モジュールが指定されています。開発で利用したいデータベースやウェブサーバーが特定のフレームワークに対応しているかどうか確認しておきましょう。
機能のバランスがいいフレームワークを選択することをおすすめします。豊富な機能を持つフレームワークは、プロジェクトによっては有益なものになります。一方で、多くの機能が不要であれば、無駄をそぎ落とした最小限のフレームワークを選択するのが得策です。
重要な機能には、次のようなものがあります。
- テスト
- キャッシュストレージ
- テンプレートエンジン:PHPクラスを使ってHTML内にPHPを出力するもの
- セキュリティ
拡張が予想される場合には、これをサポートする柔軟なフレームワークを選択しましょう。
最後に、PHPフレームワークを最大限に活用するために、優れたドキュメントとサポートが重要です。大規模で活気のあるコミュニティが存在するフレームワークは、長続きする傾向にあります。また、困難に遭遇したときの頼みの綱になります。
おすすめ記事:WordPressのPHPメモリ制限を改善する方法
2024年におすすめのPHPフレームワーク
PHPフレームワークといっても、その中身は多岐にわたります。Wikipediaには40のPHPフレームワークが掲載されていますが、その中にはコンテンツマネジメントシステムと表現した方が良いものもあります。また、数字だけで言えば、間違いなくもっと多くの選択肢があるはずです。
初期のPHPフレームワークには、PHPlib、Horde、Pearなどがあります。現在では、ほとんどの有名どころが2005年以降にローンチしています。
それでは、現在広く使用されている人気のPHPフレームワークをいくつかご紹介します。
Laravel
Laravelは「ウェブ職人のためのPHPフレームワーク」と銘打ったフレームワークです。ユーザー認証など、CodeIgniterにない要素を求め、Taylor Otwell氏によって開発されました。
簡単な仕様
リリース:2011年6月
現在のバージョン:8(2020年9月8日リリース)
技術的要件
- PHP >= 7.2.5(またはLaravel Homesteadを使用)
- Composerのインストール
- データベースは、MySQL 5.6以上、PostgreSQL9.4以上、SQLite 3.8.8以上、SQL Server 2017以上をサポート
Laravelの長所
すぐに使えるパッケージ済みの仮想開発環境としてLaravel Homesteadがあります。
Laravel Homesteadは、Laravel用に設定されたVagrantボックスで、PHPやウェブサーバーなどのサーバーソフトをローカルマシンにインストールすることなく、仮想の開発環境を整えることができます。OSまわりを散らかしてしまう心配はありません。
Macユーザーであれば、Laravel Valetを開発環境として使用する選択肢もあります。ちなみに、Laravel Valetは、WordPressだけでなく、Symfony、CakePHP 3、Slim、Zendにも対応しています。
Laravelでは、Bladeというテンプレートエンジンが使用されます。Bladeには、その中で直接PHPの操作が行えるという強みがあります。
Laravelパッケージの集められたPackalystには、プロジェクトで使用できるパッケージが1万5,000以上用意されています。
Laravelは、様々なセキュリティ性能を搭載しており、例えば以下を網羅しています。
- 認証
- 権限付与
- メール認証
- 暗号化
- ハッシュ化
- パスワードリセット
LaravelのEloquent ORMとFluent Query Builderには、PDOのパラメータ結合(prepare等を使用)による、SQLインジェクション攻撃耐性が確保されています。また、CSRFフォームトークンを使用したCSRF(クロスサイトリクエストフォージェリ)対策もデフォルトで有効になっています。
LaravelにはコマンドラインツールArtisanがあり、これを利用することで、開発に際し繰り返し行う作業を自動化し、スケルトンコードを効率的に生成することで、開発をスピードアップさせることができます。
ちなみに、PHPのベンチマークテストを行ったところ、Laravelはテスト対象としたPHPフレームワークの中で最速でした。
Laravelのエコシステムには、CSSやJSのアセットをコンパイルするMixや、OAuth認証を行うSocialiteなど、便利なツールがいくつも存在します。
Laravelには(WordPressのような)大規模な開発者コミュニティという強みもあります。例えば以下のサイトが有名です。
- Laracasts:コース、ブログ、ポッドキャスト、フォーラムのある学習ポータルサイト
- Laravel.io:4万5,000人以上の利用者を抱えるコミュニティ
- Laravel subreddit:5万人超のLaravel職人が集結
Laravelの使用例
- Vogue archive─ファッション
- Ascot─競馬場
- Camping World RV & Outdoors─小売業
- Restaurants.com─レストラン特化型検索サイト
- Barchart─株式
- Visit Maine(メイン州観光局) ─観光
- Fischer Homes─建設
- Explore Georgia─観光
Symfony
SymfonyはPHPフレームワークであると同時に、ウェブサイト構築に活用できるPHPコンポーネントのパッケージでもあります。
簡単な仕様
リリース:2005年10月
現在のバージョン:5.1.4
技術的要件
- PHP >= 7.2.5
- Composerのインストール
Symfonyの長所
Symfonyはスケーラビリティが求められるウェブサイトとアプリケーションにぴったりの選択肢です。そのモジュラーコンポーネントシステムはとても柔軟で、適宜プロジェクトに必要なコンポーネントを選んで使用することができます。
Symfonyは人気のPHPフレームワークの中でも、数多くのデータベースをサポートすることで知られています。
- Drizzle
- MySQL
- Oracle
- PostgreSQL
- SAP Sybase SQL Anywhere
- SQLite
- SQLServer
データベースとのやりとりにはDoctrine ORMが利用できます。オブジェクトをデータベースにマッピングする操作は、データマッパーと呼称されます。これはオブジェクトモデルとデータベーススキーマの分離(そして、その差分を理解した操作)を意味し、データベースのカラムを調整する場合であっても、コードベースに多くの変更を加える必要はありません。
組み込みのツールバーを使えばSymfonyのプロジェクトを簡単にデバッグできます。
Symfonyはデフォルトのテンプレートエンジンとして、学びやすく、高速かつ安全性の高いTwigを採用しています。
Packagistには4,000以上のSymfonyパッケージが掲載されています。
Sensio Labsが商用サポートを提供しています。つまり、他の多くのPHPフレームワークとは異なり、本格的サポートが存在するということです。また、3年間の長期サポートプランも利用することができます。
Symfonyを用いた開発の際には、様々なチャンネルで情報を収集できるでしょう。
- 公式ドキュメント
- Sensio Labs University─Symfonyのeラーニングプラットフォーム
- SymfonyCasts
- Symfony Certificate
- Symfony関連の各種カンファレンス
加えて、Symfonyコミュニティは60万人以上の熱心な開発者を抱えています。
Symfonyの使用例
- Sainsbury’s Magazine─出版
- Intelius─個人に関する公開データの検索
- Sony VAIO UK─小売
- Sabatier Shop─小売
- Foot District─小売
- Nobel Peace Prize(ノーベル平和賞)
Drupal、Joomla、Magentoといったプロジェクト内でもSymfonyのコンポーネントが利用されています。
CodeIgniter
CodeIgniterフレームワークを使うことで、最小限の構成でウェブアプリケーションを素早く構築することができます。
簡単な仕様
リリース:2006年2月
現在のバージョン:4.0.3
技術的要件
- PHP >= 7.2
- データベース:MySQL, PostgreSQL, SQLite3対応
CodeIgniterの長所
CodeIgniterは、特にその速度で知られています。PHPのベンチマークテストでは、4つのPHPフレームワークの中で2番目に高速であることがわかりました。
このフレームワークのフットプリントは軽く(ダウンロードは1.2MB)、肥大化を心配する必要はないでしょう。必要なコンポーネントだけを追加することができます。
CodeIgniterはまた柔軟です。MVCアーキテクチャでの開発が推奨されていますが、非MVCアプリケーションをコーディングすることも可能です。
このフレームワークには、CSRF攻撃とXSS攻撃に対する防御に加えて、文脈依存のエスケープとコンテンツセキュリティポリシーが組み込まれています。
CodeIgniterは、キャッシュの複数のメソッドをサポートしており、アプリケーションを高速化する上で効果を発揮します。
CodeIgniterは他のフレームワークに比べて学習がしやすく、それと同時に高い拡張性を誇ります。
CodeIgniterのコミュニティには、主にフォーラムとSlackグループがあります。
CodeIgniterの使用例
- G-Shock─小売
- WooBox─マーケティング
- Buffer─テクノロジー
- TestandTrack─教育
- Casio─テクノロジー
- Bike Easy─アウトドア
- Barracuda─ITセキュリティ
- FuelCMS─CMS
Zend Framework/Laminas Project
Zend Frameworkは長い歴史を持つPHPフレームワークです。現在はLaminas Projectに移行しています。Zendとしての更新が終了したことから、Laminasへの切り替えが強く推奨されます。
Laminas Projectは以下の3つの要素で構成されます。
- LaminasコンポーネントとMVC
- Mezzio
- Laminas API
簡単な仕様
リリース:2006年3月
現在のバージョン:3.0.0(Zend)または1.3.0(Laminas)
技術的要件
- PHP >= 5.6(Zend)または >=7.3(Laminas)
- Composerのインストール
- データベース:MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, Informix Dynamic Serverをサポート
Zend/Laminasの長所
Zend Frameworkには、5億7千万以上のインストール実績があります。また、企業で最も利用されているPHPフレームワークです。
ZendはPHP Framework Interop Group(PHP-FIG)の標準に準拠しており、そのコードは他のフレームワークへも問題なく移植することができます。
Symfonyの場合と同じように、必要なコンポーネントだけを使用することも可能です。
Zendを使ったRESTful APIの構築も問題ありません。
Laminasのコミュニティには、コラボレーションとサポートを後押しするフォーラムやSlackグループが存在します。
Zend/Laminasの使用例
Zendの公式サイトによると、このフレームワークは以下のような大企業により使用されています。
- BBC─メディア
- BNP Paribas─金融
- Cisco Webex─ビデオ会議
Yii
このフレームワークの名前であるYiiは、中国語で「易=シンプルかつ進化的」という意味です。また「Yes, It Is!」の略でもあります。
簡単な仕様
リリース:2008年12月
現在のバージョン:2.0.35
技術的要件
- PHP >= 5.4.0、7 以上を推奨
- Composerのインストール
- データベース:SQLite、MySQL、PostgreSQL、MSSQL、Oracleをサポート
Yiiの長所
その明快さから、数分でYiiを使い始めることができます。ドキュメントの内容が充実しており、簡単にその仕組みを理解できるはずです。
Yiiフレームワークは、bcryptパスワードハッシュ、暗号化、認証、権限管理のようなセキュリティ強化策を搭載しています。ドキュメントには、SQLインジェクション、XSS、CSRF攻撃を防ぐためのベストプラクティスが記載されています。
Giiコードジェネレータは、スケルトンコードを素早く構築するのに有用です。
Yiiはウェブアプリケーションを高速化する、データキャッシュ、フラグメントキャッシュ、ページキャッシュ、そしてHTTPキャッシュの4種類のキャッシュをサポートしています。
サードパーティのコードをYiiプロジェクトの中で実行することもできます。
YiiコミュニティはSlackやIRCを介してライブサポートを提供しています。また、ディスカッションフォーラムやSNSチャンネルもあります。アクティブなメンバーに対しては、バッジや殿堂入りといった特典が用意されています。
Yiiの使用例
- Crowdcube─クラウドファンディングプラットフォーム
- WordCounter─編集ツール
- Which?─消費者向けウェブサイト
- Purple─小売
- YMCA─非営利団体
- Pastebin─オンラインツール
- Fast Company Events─ライブ/バーチャルイベント
CakePHP
CakePHPは、高速でクリーンなPHP開発を後押しします。
簡単な仕様
リリース:2005年4月
現在のバージョン:4.1.1
技術的要件
- PHP 7.2(最低限), 7.4(推奨)
- mod_rewrite搭載のHTTPサーバーが望ましい
- データベース:MySQL 5.6以上, MariaDB 5.6以上, PostgreSQL 9.4以上, SQLite 3.8, SQL Server 2012以上をサポート
CakePHPの長所
設定を最小限にとどめることができます。XMLやYAMLファイルを操作する必要はありません。データベースをセットアップし、すぐにコーディングを始めることができます。
CakePHPは、独自のORMを内蔵しており、素早く簡単に使用することができます。
セキュリティ機能には、暗号化、パスワードハッシュ化、フォームデータの保護、CSRF対策などがあります。
CakePHPのコンポーネントとヘルパーは、開発の簡素化に貢献します。基本的なタスクの工程を減らすことができます。
Githubでは、便利なCakePHPリソースやプラグインの一覧が公開されています。
CakePHPは、Cookbook(ドキュメント)、オンライントレーニング、CakeFestカンファレンスなどで学習することができます。
フォーラム、Stack Overflow、IRC、Slackを通じてのCakePHP関連の交流も盛んです。また、CakePHPの創始者であるLarry Masters氏が運営するCake DCでサポートを受けることもできます。
CakePHPの使用例
- Visit NC─観光
- 10 Fast Fingers─教育
- Coconala─eラーニングマーケットプレイス
- GoodFirms─ソフトウェアのマーケットプレイス
- Printivo─EC
- Citizens, Inc─ファイナンス
Slim
Slimは、Josh Lockhart氏が開発した、シンプルでアジャイルなマイクロPHPフレームワークです。HTTPリクエストを受け取り、コールバックを起動し、HTTPレスポンスを返すことに重点を置いています。
簡単な仕様
リリース:2010 年 9 月
現在のバージョン:4.5.0
技術的要件
- PHP 7.2以上
- URL書き換え可能なウェブサーバー
Slimの長所
Slimのコードベースは、サードパーティへの依存がなく、無駄がないつくりになっています。その結果、非常に高速に動作します。
Slimは特に小規模なアプリやAPIを構築するのに適しています。フレームワークにさらなる機能を求める場合には、ファーストパーティ/サードパーティ両方のコンポーネントと統合できます。
Slimは学びやすく、理解しやすいフレームワークです。ものの数分で「Hello World」アプリを動作させることができます。
Slimは、比較サイトSlantで、開発者から優れたPHPフレームワークとして評価されています。
Slimについての専門的なサポートは、Tideliftから提供されています。
Slimの使用例
- Top Web Comics─出版
- Canine Principles─トレーニング
- CG Forge─教育
- Betterplace Academy─教育
Phalcon
Phalconは、高速化を意識し構築されたPHPフレームワークです。ZephirとC言語で書かれたウェブサーバーの拡張として提供されています。フレームワークにより生成されるPHPクラスと名前空間を使って開発作業にあたることができます。
簡単な仕様
リリース:2012年11月
現在のバージョン:v5
技術的要件
- PSR拡張子
- PHP 7.4以上(最新版推奨)
Phalconの長所
Phalconは、以下のような特徴を持ち、動作が高速であることで知られています。
- ローレベル(オーバーヘッドやメモリ消費が少ない)アーキテクチャ
- Zephir、C言語拡張、PHPを一度に読み込み可
- (インタープリタではなく)コードがコンパイルされるため高速に動作
- メモリ常駐型なので、必要なときにいつでも呼び出すことができる
- 他の多くのPHPフレームワークと異なり、ファイルの読み込みやファイルの統計処理を行わないため、パフォーマンスの向上が期待できる
Phalconは疎結合なので、独自のディレクトリ構造を作成することができます。Phalconのコードはプロジェクトディレクトリに保存されないため、コードの軽量化が可能です。
Phalconのセキュリティ(Security)コンポーネントは、パスワードのハッシュ化やCSRF対策を後押しする便利な要素です。
PhalconのテンプレートエンジンであるVoltは非常に高速で、ビューを簡単に作成できるヘルパークラスが付属します。
Phalconのサポートは、公式ドキュメント、フォーラム、Discordチャット、Stack Overflow、そして複数のSNSサービスで利用できます。
Phalconの使用例
Phalcon BuiltWithによると、Phalconは以下のようなサイトで利用されています。
- Learny Online─学習
- Outsmart─分析
- Marchi Auto─自動車販売店
FuelPHP
FuelPHPは、コミュニティ主導のPHPフレームワークで、全期間を合計するとコントリビュータの数は300を超えます。
簡単な仕様
リリース:2011年6月
現在のバージョン:1.8.2
技術的要件
- PHP 5.4以上
- 任意のウェブサーバー
FuelPHPの長所
FuelPHPはMVCモデルを採用していますが、HMVC(Hierarchical Model View Controller)もサポートしています(※注釈:Hierarchicalは「階層的」の意味)。これは、簡単に言えば、コントローラとビューの間にもうひとつの層を追加するものです。HMVCには、以下のような強みがあります。
- 優れたコード構成
- 優れたモジュール性
- 高い拡張性
- コード再利用の促進
制約が少ないので、プロジェクトに必要なファイルやフォルダの構造を自分で選択することができます。FuelPHPはセキュリティに真剣に取り組んでおり、以下のような機能を備えています。
- 出力エンコーディング
- CSRF対策
- 入力、URI、XSSフィルタリング
- SQL文に渡されたユーザーによる入力内容のエスケープ
FuelPHPには独自のコマンドラインユーティリティであるoilがあり、タスクの実行、コードのデバッグ、共通コンポーネントの生成に使用することができます。
FuelPHPのORMは強力でありながら軽量です。
FuelPHPのコミュニティには、フォーラムやFacebook、Twitterで参加することができます。
FuelPHPの使用例
- Wan Wizard─Harro Verton氏のサイト(FuelPHP開発者の一人)
- Front Desk ─不動産管理システム
Fat-Free Framework
Fat-Free Framework(F3)はSlimと同様、マイクロフレームワークです。便利な機能、シンプルさ、使いやすさ、速度のバランスを取ることを目的としています。
簡単な仕様
発売:2009年
現在のバージョン:3.7.2
技術的要件
- PHP 5.4 以上
- 任意のウェブサーバー
- データベースは、MySQL, SQLite, MSSQL/Sybase, PostgreSQL, MongoDBに対応
Fat-Free Frameworkの長所
コードベースが65Kb程度なので、高速です。それでいながら期待されるすべての機能を備えています。オプションのプラグインで必要な機能を拡張することもできます。
Fat-Free Frameworkの使い方はとても簡単です。Composer、curl、その他依存性インジェクタを使用する必要はありません。Hello Worldアプリをものの数分で作成できます。
フレームワークのほぼすべてがモジュール化されているので、ウェブアプリケーションの構築に必要な部分のみを使用することができます。F3は、デフォルトで不要なコードを追加しない設計なので、アプリを最小限の状態に保つことができます。
ドキュメントは明確でわかりやすく、例題も豊富に用意されています。Fat-Free Frameworkでは、テンプレートエンジンの選択が可能です。PHP、F3独自のテンプレートエンジン、SmartyやTwigといった他のテンプレートエンジンを使用することができます。
F3開発者の面々はSlackとFat-Free Framework Google Groupで活動しています。
Fat-Free Frameworkの使用例
- Malwarebytes Jobs─採用情報
- Eve University Dev Pathfinder─ゲーム
- Andiamo─採用情報
- Baker Online─小売
- Eloquens─ビジネス
- PC Specs─テクノロジー
初心者におすすめのPHPフレームワークはどれか
初心者に最適なフレームワークとなると、シンプルで無駄のないものをおすすめします。簡単なものを1つマスターすることから始め、必要であれば、より機能満載のものに移行するといった流れが考えられます。
Yiiは、初心者向けのPHPフレームワークとしておすすめです。Yiiのドキュメントでは、国を表示するアプリの構築、MVCパターンについて、そして、その過程でデータベースをどのように扱うかについて、順を追った説明がされています。
もし間違いがあってもエラーが明確なので、デバッグしてすぐに作業を続けることができます。
Slimフレームワークは迅速かつ簡単にインストールできます。フレームワークのバージョン3を想定した解説として「First Application」が用意されています。残念ながら、現段階で最新版であるバージョン4向けには更新されていません。
Fat-Free Frameworkは、Composer経由でインストールするか、ZIPファイルをダウンロードして解凍するか、どちらか好きな方を選択して使用します。標準でシンプルな「Hello, world」プログラムが用意されています。
ユーザーガイドでは、ルーティングから単体テストまで、必要な事柄が順を追って説明されています。また、CMSのデモもあるので、すべての構成要素がどのように組み合わされているかを確認することができます。
CodeIgniterもまた簡単にセットアップでき、ドキュメントも優れています。「First Application」と題された説明に従えば、ニュース記事を扱う、CRUD機能を搭載したシンプルなCMSを構築できます。
まとめ
PHPウェブアプリケーションの開発に費やす時間を短縮したいのであれば、フレームワークの使用は賢い選択です。
PHPフレームワークを最大限に活用し、イライラをためないようにするには、PHPの知識を持ち、フレームワークの背後にある基本的な概念を理解していることが重要です。MVCモデル、オブジェクト指向の構文、データベースとORM、そしてコマンドラインといった要素が重要になります。
どのフレームワークを選ぶかは、構築するアプリケーションの種類によります。「超ミニマリスト」なものから「一切合切盛り込まれた」ものまで、あらゆるPHPフレームワークがあります。この記事が、PHPフレームワーク選定のお役に立てることを願っています。
あなたの好きなPHPフレームワークはどれですか?以下のコメント欄でお聞かせください。
コメントを残す