PHPフレームワークを徹底比較、おすすめのフレームワークと学習法を紹介

  • 2020年7月5日
  • 2021年5月14日
  • IT, PHP
 
悩んでいる人
「PHPの基礎もわかってきたし、フレームワークに手を出そうと思うけど、どれがおすすめなんだろう?フレームワークってどうやって勉強すればいいの?」
 


こういった疑問に答えます。

・そもそもフレームワークとは?
・PHPフレームワークを徹底比較
・おすすめPHPフレームワーク【結論:Laravel】
・Laravel学習法、おすすめのサイトを紹介


そもそもPHPがわかんないよって人は、当ブログの【初心者向け】PHPとは?基礎知識とPHPがプログラミング初心者におすすめな理由で詳しく紹介しているので、良かったら参考にしてください!

この記事を書いている私は、本業がエンジニアで日頃PHPでWebアプリやWebシステムを開発しています。

今回は、PHPフレームワークを比較しつつ、おすすめのフレームワークとその学習法を紹介します。


Advertising

そもそもフレームワークとは?


フレームワーク(framework)とは、日本語にすると「枠組み」いう意味で、Webアプリやシステムを効率的に開発するためのひな形や機能群を意味します。

このフレームワークのおかげで、少ないコードでいろんな機能やデザインを実現することができます。

例えば、amazonやzozotownなどの商品を購入するようなECサイトを実装する場合、以下のような機能が必要になると思います。

・アカウント作成機能
・ログイン機能
・メール送信機能
・オンライン決済処理機能 などなど

これらの機能をゼロから作るとなると、自分でPHPを100行書かないといけないとすると、フレームワークを使用すると、10行で済んだりします。

 

ログイン機能にしても決済機能にしても、SNSやECサイトで必要な機能はだいたい決まっています。

つまり、いろんなサイトで使われそうな機能をあらかじめ集めたプログラムのひな型がフレームワークなのです。

フレームワーク特有の書き方を学ぶ必要はありますが、開発を行う上でも役に立つし経験値としても非常に重要なので学習して損はないと思います。


PHPフレームワークを徹底比較


PHPには、数多くのフレームワークがあるので、今回は主要なPHPフレームワークを5つ比較したいと思います。

【比較する5つのPHPフレームワーク】

①:Laravel
②:CakePHP
③:FuelPHP
④:Symfony
⑤:CodeIgniter


1つずつ特徴を見ていきましょう。

①:Laravel(ララベル)


Laravel
とは、近年最も注目を集めているPHPフレームワークです。

GitHubでは、PHPフレームワークの中で最高評価を受けていて、PHPエンジニアから支持されています。

【特徴】

  • 世界中で人気のあるPHPフレームワーク
  • MVC(Model/View/Controller)モデルを採用
  • 学習コストが低い
  • PHP初心者でもきれいなコードが書ける
  • 機能がとにかく豊富


②:CakePHP(ケイクピーエイチピー)


CakePHPとは、2005年に公開され日本市場では最も利用されてきたPHPフレームワークです。

Ruby on Railsの概念の多くを取り入れていて、WebアプリやWebシステムを高速に開発することができます。

【特徴】

  • 日本で最も利用されてきたPHPフレームワーク
  • 学習コストが低い
  • 高速開発をサポートする機能
  • MVC(Model/View/Controller)モデルを採用
  • 活発なコミュニティが存在


③:FuelPHP(フューエルピーエイチピー)


FuelPHPとは、2011年に公開された比較的新しいPHPフレームワークです。

昔から利用されているPHPフレームワークの長所が活かされているため、軽量かつ高速です。

【特徴】

  • 動作が軽量かつ高速
  • HMVC(Hierarchical/Model/View/Controller)を採用
  • 高い自由度で開発できる
  • オートローダー機能が備わっている
  • 最先端のPHPフレームワーク


④:Symfony(シンフォニー)


Symfonyとは、 2005年に公開された老舗のPHPフレームワークで、企業案件などで採用されています。

機能テストやデバッグをするための機能がとても豊富で、 保守性と安定性を重視した構造になっています。

【特徴】

  • 大規模開発に利用されることが多い
  • MVC(Model/View/Controller)モデルを採用
  • デバッグや機能テストをするツールが豊富
  • 開発者人口が少ない
  • 学習コストが高い


⑤:CodeIgniter(コードイグナイター)


CodeIgniterとは、2006年に公開され軽量かつ高速で、高い自由度が実現されたPHPフレームワークです。

他のPHPフレームワークと比較しても、トップクラスの高速性を誇ります。

【特徴】

  • 動作が軽量かつ高速
  • MVC(Model/View/Controller)モデルを採用
  • コーディング規約が緩く、高い自由度で開発できる
  • コード量が少なくて済む
  • ライブラリが豊富


スポンサードサーチ

おすすめのPHPフレームワークは?【結論:Laravel】


2021年現在でおすすめのPHPフレームワークは「Laravel」です。

理由はいくつかありますが、特に次の3つです。

①:人気が高く、PHPエンジニアからの支持率が高い
②:コードがシンプルで学習コストが低い
③:案件数が多い
1つずつ見ていきましょう。
 

①:人気が高く、PHPエンジニアからの支持率が高い


人気度とエンジニアからの支持率は、GitHubのスター数を見たらわかります。


スター数が多ければ多いほど、人気度も高くPHPエンジニアから支持されているということになります。

上で紹介した5つのフレームワークでGitHubのスター数を比較してみましょう。
※2020年7月時点

Laravel59.9k
CakePHP:8.2k
FuelPHP:1.4k
Symfony:23.6k
CodeIgniter:18k

圧倒的にLaravelが支持率高いですよね。

ちなみに、Googleトレンドでの検索数(日本)でも比較してみましょう。


過去5年間の検索数ですが、他フレームワークが下がっている中でLaravelだけ急激に上昇しているのがわかりますよね。


②:コードがシンプルで学習コストが低い


Laravelのコードはとてもシンプルで、初心者でも書きやすいことから人気を集めています。

コードがシンプルで分かりやすいため、学習コストが低く、習得するまでにそこまでの時間と労力を必要としません。


③:案件数が多い


フリーランス向けの求人サイト、レバテックでLaravelの案件数を見てみましょう。


こちらも5つのフレームワークで求人検索して案件数を比較してみます。
※2020年7月時点

Laravel272件
CakePHP:159件
FuelPHP:103件
Symfony:64件
CodeIgniter:35件


やはり、Laravelが多いですよね。

求人数が多いということは、需要が高く稼ぎやすいということです。

日本市場だと、CakePHPもわりと求人数は多い方ですね。


Laravel学習法、おすすめのサイトを紹介


Laravelの学習法としては、本で一通り学習をしてからサイトを利用して学習や実際にLaravelを使用してWebサービスを構築することをおすすめします。

Laravel学習におすすめの参考書については、別記事の【レベル別】Laravel学習におすすめの本・参考書4選で紹介しているのでよかったらぜひ。

ここでは、Laravel学習でおすすめのサイトを3つ紹介します。


公式サイト


Laravelに限ったことではないですが、今回紹介したフレームワークはどれも公式サイトが充実しています。

ひとまずざっと公式サイトを見てみましょう。

細かい点は、開発しながら覚えていけばいいと思うので、まずはどんな機能があるのかなどをざっくり把握しましょう。


Laracasts

【Laracasts公式サイト】

かなり高クオリティのLaravel学習サイトです。

入門講座は無料なので、チェックしてみましょう。

動画を見ながら進めていくので、英語が分からなくても大丈夫です。

中級以上のコンテンツは有料ですが、ひとまず無料動画を見てみるのもいいでしょう。

有料会員登録は、月額15ドルで1年契約だと99ドルですが、1ヵ月ごとの更新で良いと思います。
1年間も使うことはないと思うので・・


Laravel学習帳

【Laravel学習帳公式サイト】

こちらのサイトはテキストベースですので、自分のペースで読み進めていくことができます。

Laravel環境構築や基礎知識を学ぶことができます。

図解などを用いて解説しているので、わかりやすいと思います。


スポンサードサーチ

おわりに


フレームワークはエンジニアとしての経験値もそうですが、転職する際にもフレームワーク系は単価が高めなので、学習しておいて損はないでしょう。

というわけで今回は以上です。

Advertising