PHPを便利に使える「フレームワーク&ライブラリ&ツール」

「初心者向き」とか「軽量フレームワーク」という言葉と縁の深いのがPHPですが、そんなPHPでも使いこなすと実にさまざまな処理を行うことができます。

サーバープログラミングでは高いシェアを誇るPHPの「上手な使い方」ができるようになりたいものですね。

プログラムの書き方もそれぞれのフレームワークやテンプレートエンジンで異なることがほとんどなので「学習コスト」を節約するためにも、学ぶ対象についてその特徴を把握しておくこともとても大切です。

「勉強きらい」な人の勉強量を減らすために効果があるそれぞれのフレームワークやライブラリの特徴についてまとめてみました♪

PHPを効率的に学びたい人のための「フレームワーク&ライブラリ」まとめ

さまざまなプロダクトを開発する中で便利なライブラリを使用することは、もはや当たり前な世の中ですが、自分で管理するとほとほと面倒なのが、「ライブラリのバージョン管理」。

ちょこっとライブラリを更新しただけなのに、「エラーメッセージ」とご対面して「あぐぅ~」な経験をしたプログラマーさんもたくさんいます←自分。

そんな問題を易しくサポートしてくれるのが「PEAR」です。

PEAR

PHPに標準添付されているのが「PEAR」ですが、PEARはライブラリを「パッケージ」という単位で管理をしています。

PEARパッケージマネージャーをインストールすると、PEARコマンドを使ってパッケージを操作できるので、まずは、PEARパッケージマネージャをインストールする必要があります。

データベースを使用したり、ユーザー認証を行ったり、ぺージングを行う機能があるなど、さまざまなPEARライブラリを使用することができます。

→「PEAR」

Composer

「Composer」もPEAR並みに有名なパッケージ管理ツールで近年ではかなり広く使われるようになってきました。

パッケージ管理ツールを使うことのメリットとして、「ライブラリの依存関係管理」がありますが、パッケージ管理ツールを使うとこれらの複雑な依存管理から解放されるというメリットがあります。

大規模なアプリケーションでは、ライブラリのバージョンや依存管理の複雑度が増していき、人間が把握するのは難しくなるほど変更ログが溜まることも珍しくありません。

プログラマが本来集中すべきプログラミングができる環境をツールを駆使して整えていくことは非常に大切です。

→「Composer」

zend framework

PHPのWEBアプリケーションの中で、PHP開発元のZend Technologiesからリリースされているのが、「zend framework」です。

MVCモデルを採用した、極シンプル構造のフレームワークですが、クラスライブラリを「コンポーネント」として扱うところに特徴があります。

フレームワークの学習には時間と労力がかかってしまうものですが、「zend framework」は比較的学習しやすいため、1週間もあれば概要を学んでアプリケーションを作り始めることも可能です。

Ajaxでの通信も行え、PHPでできることは概ねサポートしてくれているので、大変扱いやすくて便利なフレームワークです。

→「zend framework」

symfony

「symfony」もPHPフレームワークでは多くのプログラマに使用されていますが、「scaffold機能」などWEBアプリ開発に便利な機能が多く含まれていて、こちらも人気のフレームワークとなっています。

スマートURL機能など、URL形式を簡単な設定で行えることや、管理ツールが附属しているなど、プログラマの負担を減らしてくれる種々の機能が豊富に備わっています。

多くのフレームワークでは、XSS・CSRFなどの攻撃に対してセキュリティ対策を行ってくれますが、「symfony」でももちろんこれらの攻撃への対策を行ってくれます。

→「symfony」

CakePHP

CakePHPはRuby on Rails というRuby用のフレームワークの影響を受けていると言われていますが、PHP言語を一通り学んだ人が一番初めに学ぶ、「初心者向けのフレームワーク」と位置づけられることも多いのですが、「機能も豊富で使いやすい」というところが人気となっています。

他のフレームワークに比べて比較的学習時間も短くて済み、すぐにアプリ開発に取り組むことができるのも「CakePHP」の大きな魅力ですね♪

ただし、「軽量フレームワーク」と称されることもあり、Ruby on Railsなどの大規模なフレームワークと比べると「できることに限りがある」というのも事実です。

どれくらいの規模のアプリを作るのか?

という視点から使用するフレームワークを選ぶことも大切です。

→「CakePHP」

Codeigniter

処理速度が高速なフレームワークが「Codeigniter」です。

大量のリクエストを処理する必要があるシステムでは、処理速度が高速でないとアクセスユーザーのユーザビリティを損なう可能性もあるため、処理速度も大切な要素です。

ただし、独特な仕様を定義していたこともあり、フレームワークの中では「クセ」が強いフレームワークでもあったのですが、バージョンが上がるにつれて使いやすい仕様へと少しずつ改良されてきています。

こちらもMVCモデル型フレームワークなので、これまでに類似したフレームワークの使用経験があれば、学習コストはそれほどかからないシンプルな仕様となっています。

→「Codeigniter」

FuelPHP

FuelPHPは「最新のバージョンのPHP」に最適化しているフルスタックフレームワークで、「シンプル&パワフル」な機能が盛りだくさんのフレームワークです。

MVCモデルを階層化できる「HMVC(Hierarchical MVC)」と呼ばれるアーキテクチャを採用し、Webアプリ開発でPHPを使うならぜひ検討しておきたいフレームワークです。

現在、広く普及しつつある段階ですが、使い勝手の良さや機能の豊富さなどから、今後主流となる可能性のあるフレームワークですので、学んでおいて損はないと思います。

→「FuelPHP」

Laravel

2012年に発表されたPHPフレームワークの中では「新顔」なフレームワークですが、少しずつ人気が出始めています。

これまでに紹介してきたフレームワークとの大きな違いは、「処理速度の遅さ」でしょうか。

あくまで他のものと比べた結果なので、圧倒的に遅いというわけではないのですが、大規模ユーザー向けのシステムでなければそこそこ対応できるようです。

そもそも速度重視のシステムであれば「PHP」を選択することは無いと思うので、そういう意味ではどれも「そこそこ早い」というところでしょう。

→「Laravel」

結局どのPHPフレームワークがいいの?

PHPフレームワークを使う際にたくさんフレームワークがあり過ぎてどれを使えばいいのかわからないという声を聞くことも増えてきたので、いくつか指針を挙げておきたいと思います。

  • 商用目的で使用する場合、ライセンスの問題は無いか
  • 運用実績のあるフレームワークであるか
  • フレームワークに関してのドキュメントが十分にあるか
  • 外部ライブラリへの依存性が高くないか
  • セキュリティ対策は十分に行われているか
  • 開発するシステムに実装する機能がそのフレームワークで実現できるか

フレームワークを使う際には他にも数多くの注意点がありますが、最低限調べておきたい項目として上記のようなものがあります。

特にライセンスの問題は、商用利用する際にフレームワーク以外にもフレームワークが利用しているライブラリのライセンスについても派生的に調べていく必要があるため、入念な確認が必要になってきます。

PHPフレームワークは今後も増えていくと思われますが、どんなフレームワークが適切なのかはシステムの規模や実装する機能の種別などによっても変わってきますので、あらかじめ「どのようなフレームワークがどのような規模のシステムに最適なのか」を知っておくことは大切です。

「PHP Framework」学習書籍

HOMEへ