PHPフレームワーク感想 2017年時点

PHPおもいで

長くサラリーマンエンジニアをやっていると、いろいろな現場に出向し様々なプログラミング言語やフレームワーク、DBを経験します。

今まで携わってきた案件の中で、PHPがプログラミング言語として一番多く携わってきました。PHP言語自体はとてもいい言語だと思います。簡単に記述できて、気軽に動かす事ができ、サクサク書けるので好きです。ただし、PHP言語をそのまま使用して何も考えずに設計実装すると、そのうちコードが煩雑になりとてもメンテナンスし辛く、バグ修正が困難になります。ただ、これはどの言語にでも言える事ですが。

PHPフレームワーク特徴まとめ

2017年時点において、私が今まで使用してきたPHPフレームワークの一覧になります。私の独断と偏見でそれぞれ特徴をまとめてみました。

名前 種類 特徴 速度 PHP最低要求バージョン FW最新バージョン 有償無償
ZendFramework 開発ツール+FW PHP開発元のFW、IDE 普通 ?PHP7 ?3 有償
Mojavi MVC PHP4時代のMVC 早い PHP4 ?1 無償
Symfony MVC LaravelのベースFW 遅い PHP5.4 3.3 無償
yii MVC 軽量 早い PHP5.4 2.0 無償
CakePHP MVC 日本で一番メジャー 遅い PHP7 3.5 無償
Laravel MVC 豊富な機能 遅い PHP7 5.5 無償
RADPHP 開発ツール+FW IDE、ビジュアル開発 遅い PHP5.2 2 有償
CodeIgniter MVC 軽量、シンプル 早い PHP5.3 3.1 無償
FuelPHP MVC 軽量、HMVC 早い PHP5.3 1.8 無償
SlimPhp C シンプル 早い PHP5.5 3.9 無償

PHPフレームワーク感想

次に今まで使用してきたPHPフレームワークについてのゆるい感想を記載していきます。

ZendFramework

言わずと知れたPHP自体をメンテナンスしているZend社のFWです。仕事で初めてphpを触れたときに使用したのもこちらです。PHP5.1ぐらいで使用していたと思います。まだ、フレームワークのバージョンは1でした。開発環境のZend Studioもセットでした。フレームワークというよりは、javaSDKのようなPHPライブラリのセットという感じでしたね。

当時はMVCの概念があまりなく、ディスパッチャ(コントローラ)とview(smarty)だけで実装していました。PHP言語自体の簡単さにも驚いた記憶があります。

Mojavi

PHP4時代のメジャーフレームワークですね。
フレームワークですが、提供されているファイルが、1つだけという衝撃的でした。しかし、きちんとMVCで設計実装できるので、見通しが良かったです。この辺から、フレームワークのソース自体を見るようになりましたね。

Symfony

ほぼフルセットで備わった大規模フレームワークです。
セキュリティ周りも整備されていて、テンプレートエンジンやバッチ周りも完備されていました。

yii

イーと読むらしいです。イーフレームワーク。オープンソースソフトウェアを導入するときに、yii上で実装されていて、改造するときにフレームワークをいじりました。こちらも一通り機能が揃っています。

CakePHP

こちらもフルセットですね。CakePHPはRailsの影響を受けて作られたそうです。ModelのORM系はActiveRecordに似ています。日本で一番有名なPHPフレームワークとなっています。

バージョンが古いPHPもサポートしているため、使用しやすいのかもしれません。

Laravel

欧米では流行っているフレームワークだそうです。最近日本でも使われている事が多くなってきたのかもしれません。

RADPHP

PHPで唯一ビジュアル開発できるツールのようです。DelphiやC++Builderという単語にピンときたらコチラ。しかし開発は停止している模様。

CodeIgniter

最近使用したため、コメント多めです。

シンプルです。機能は一通り揃っていますし、MVCとしても使えます。ただいくつか、自分で決め事をしないとならないため、コーディング量が多くなりがちです。コントローラですと外に見せるアクション名はpublicにするだけです。名前なども自由です。

よいところとしては、フレームワーク内部のソースが読みやすいため拡張しやすく、使い方がわからない機能が、あってもコードを読むとよく分かります。

何故かベースコントローラ名が決まっていたりしますが、とりあえず変えられます。アクションメソッドの前に実行しておきたい処理などは、大抵のフレームワークでは、beforeフィルタなどがついてたりしますが、codeigniterはないため自分で名前を決めて書いておく必要かあります。

FuelPHP

初期codeigniterがライセンスで揉めている間に、codeigniterに代わるフレームワークとして開発されてきたようです。

ただcodeigniterと比べてかなり機能追加されています。実装のしやすさは、やはり決め事が多いため自分でコードを書いて行く人には使いやすいかと思います。

特徴的なのはHMVCとい構造で実装できる事です。他のフレームワークにはない形で、ヒエラルキーMVCと書くように、MVCを階層構造で実装できる点です。大きなプロジェクトなどでは、単体のMVCだけでは整理できず1ディレクトリにコントローラが大量に置かれがちです。このHMVCを採用すれば、ディレクトリの様に階層構造で表現できるようになります。

SlimPhp

こちらは、シンプルにコントローラのみの実装で済みます。最近ではマイクロフレームワークと呼ばれるジャンルのようです。やはり、よく使われるのはWeb APIや、マイクロサービスなどが多いですね。

00年代のフレームワーク

00年代のPHPフレームワーク記事はこちらが参考になりました。

PHPフレームワークの歴史と現状