PHPフレームワークの採用史と、Laravel5導入の可能性

こんばんは。台風が迫る中、お中元を迷う担当のイッペイです。

さて、本日はPHPフレームワークとして一昨年あたりから勢いがある”Laravel”の導入をし始めるお話。

現状、サンネットで標準のPHPフレームワークの地位を獲得しているのは、
CakePHP2.x系です。
CakePHP2.xへ至る過程をざっくり挙げると以下のようになります。

生PHP×Smarty(MVCじゃないとキツイ。CakePHP1.xは古臭い) → CodeIgniter2.x(ライセンス問題と、新興であるFuelPHPのサポートへの不安) → ZendFramework1.x(縛りが弱いので外部パートナーへの情報共有や内部での教育が大変) → CakePHP2.x (そろそろモダンじゃない)→???

紆余曲折を経て、消去法でCakePHP2.xに落ち着いているのですが、
結論から言うと、サンネット的には最初からCakePHP1.3→CakePHP2.xとした方がノウハウを集中できただろうなとは思います^^;
書籍の量やネット上のノウハウの件数が全然違います。
ちなみに、もっと情報が充実しているであろうRuby on Railsでない理由はというと、

・多くのレンタルサーバーで動かない
・WordPress、EC-CUBE等のオープンソースのCMSやカートシステムと技術的な共通点が少ない
(プログラマとデザイナーとの技術的な連携がPHPだと何かと便利)

この辺が挙げられます。
さて、では次期Webフレームワークは何を選定すべきか。
気休めのGoogleトレンド。

かつてPHP4大フレームワークと呼ばれた、CakePHP、Symfony、ZendFramework、CodeIgniterと、
最近勢いのあるLaravelの検索数の推移を比べると上のグラフのようになります。
Laravelの伸びが圧倒的!GitHubでも短期間で多くのスター数を獲得しております。
また、Symfonyの部品を利用して作られており、同じSymfony系のフレームワークと学習コストを共有することが可能と思われることも魅力です。

ちなみに上は世界のグラフで、日本に限定するの以下のようになります。

やはり、保守的な日本。CakePHPの圧倒具合。
ただ、CakePHP3系は1系や2系とかなりモデル周りが変わっており、
移行コストが別フレームワークへの移行コストに近いくらい掛かってしまうと想定されるため、
ネットでの界隈では、Laravelや、別言語のRuby on Railsへの開発者の流出が見られます。
一方で、発展目覚しく、後方互換をどんどん切っていくLaravelに比べ、CakePHPは保守的で、よく言えば安定を重視しているため、長期メンテナンスを必要とするWebサービスに向いているとも言えます。

ちなみに、人気なはずのFuelPHPを入れていませんが、
Laravelと同じくらいです。

ああ、それから、Laravel。ロゴがカッコいいです。

laravel_2

Tシャツが欲しいレベルのロゴ。
上記を踏まえますと、Laravel5とCakePHP3を学んでおけば、大きくは外れなそうです。
(今年登場予定のZend Framework3、Symfony3も気になりますが・・・)

導入ですが、以下のコマンド2つを実行するだけで、インストールが完了しました。
(サーバーにGitがインストールされていないと失敗したので、予めインストールしておきましょう)

composer composer global require "laravel/installer=~1.1";
composer create-project laravel/laravel --prefer-dist;

スタート画面が表示されます。

Laravel

ダウンロードではなくてコマンドライン必須なのはCakePHP3も同じで、
CakePHP2がリリースされた時代(2011年)とは大分変わりました。

Laravel5を導入するかCakePHP3を導入するのか、まだ確定はしていませんが、
両方とも、格安のレンタルサーバー(例えばさくらインターネット)では、PHPの拡張モジュールが足りず、そのままは動作しません。
正攻法で行くなら、VPSやクラウドを利用する必要があります。

これは(他の言語と比べての)PHPフレームワークの利点が落ちる気がします。
VPSやクラウドを利用するのであれば、PHPである必要もないのでは?という気もしてきます。

かと言って、同じことが出来る言語を2つ学習していくよりは、サーバサイドはPHPにしておいて、全然役割の違うスマホ向けのSwiftやJava(Android SDK)等を強化した方が有益なのではないかとも思えます。
Railsに移行する可能性を残しつつ、ひとまずPHPにノウハウを集中させるには、よりRailsに近くなったと言われるCakePHP3にした方が良いのか?
業務でCakePHP2を使いつつ、Laravel5とCakePHP3両方学びながら、情勢を注視していこうと思います。

   
サンネット株式会社
〒901-2101
TEL098-870-0670/FAX098-870-0671