PHPフレームワークとは?おすすめの10選と選び方【2020年最新版】

 oinari | 2020/11/02 - 20:43
目次

    PHPフレームワークとは

    PHPのフレームワークとは、PHPを利用して開発をする際に必要な機能を、ある法則に則ってつかえるよう標準化したものです。

    例えばPHPを1から書く場合には200行必要な機能が、PHPのフレームワークを利用すると20行だけで済むことがあります。

    フレームワークと似た言葉としてライブラリがありますが、両者の違いは「制御の反転があるかどうか」によります。

    ライブラリの場合、プログラムを動かす主導権はプログラマーが書いたコードにあります。一方でフレームワークの場合、プログラマーが書いたコードはフレームワークによって制御されるのです。

    つまり、ライブラリは主導権がエンジニア側にあり、フレームワークは主導権がフレームワークに側にあると言えます。

    PHPフレームワークを利用するメリット

    開発スピードが上がる

    MVP開発やリーンスタートアップという言葉が注目されているように、IT/Web業界では特にサービスを高速で市場に投下することが重要です。PHPのフレームワークを利用するのとしないのでは、開発スピードにかなりの差が生じます。

    例えばPHPのフレームワークには、データベースアクセスの機能やログイン機能などが備わっているのですが、それらをフレームワークなしでエラー無く完成させるには、かなりの時間を要してしまうのです。

    コードの統一性を保持(多人数開発にも対応しやすくなる)

    プログラミングに限らず全ての仕事にいえますが、コードの書き方にはその人の個性やクセがでます。

    経験、スキル、年齢、性格、キャリアなど様々な要因によって差が生じるのですが、人が書いたコードを修正するのは、かなり大変な作業です。

    フレームワークを利用すれば、コードの統一性を保持させることができます。

    統一性を保持することにより、多人数開発にも対応しやすくなります。

    バグの減少

    PHPのフレームワークは基本的に大人数のエンジニアに利用されています。そのため、バグはすでに解決されていることが多いです。

    それらのバグが少ないフレームワークを利用して開発を進めると、開発をしたプログラムもバグが少なくなる可能性が高まるといえます。

    フリーランスとして仕事が取りやすくなる

    PHPの中規模、大規模以上案件では、フレームワークが利用されていることがほとんどです。特にLaravelは年々ニーズが上昇しているため、PHPエンジニアのフリーランスとして仕事を安定的に獲得するにはキャッチアップは必須といえるでしょう。

    PHPフレームワークを利用するデメリット

    学習期間が必要

    フレームワークを使いこなすにはPHPの理解がある前提で、最低でも数週間は学習をする必要があります。概要を抑えることができても、細かい要望を実現しようとすると調査に更に時間がかかることはよくあります。

    また、ドキュメントは基本的に英語で書かれていることが多いです。

    種類によっては利用に費用がかかる

    フレームワークによって、は利用に費用がかかることがあります。

    学習をする前に、無料で利用ができるか調べることをおすすめします。

    イレギュラーに対応できないことがある

    フレームワークはいわゆる「よくある機能」を開発する際には有用です。

    しかし、前例が少ない機能を開発したい場合、対応できないことが多々あります。

    フレームワークは決められたルールに則ってサービスを開発していかなければならないため、イレギュラーが多発するようなサービスではフレームワークを利用しないほうが作りやすいことがあるのです。

    PHPフレームワークトレンド状況

     

     

    画像:Googleトレンド(2004/01/01~2020/10/20)をもとに算出

     

    PHPフレームワークのトレンド状況を見てみましょう。

    CakePHPは、2010年6月から下降傾向をたどっています。

    同様にCodeIgniterも2011年1月から徐々に人気を落としているのがわかります。

    一方で、2011年6月に初版がリリースされたLaravelは上昇傾向にあり、徐々にシェアを伸ばしています。

    おすすめのPHPフレームワーク10選

    Laravel

    Laravelは2011年6月に初版がリリースされた、PHPフレームワークです。

    日本に限らず世界中で人気が急上昇しています。PHPフレームワークのなかでは後発ではありますが、高い頻度でバージョンアップが行われており、2013年にはSymfonyをベースとして大きな変更が行われました。

    メモリを使用する量は多く、リクエスト処理数は少ないとはよく言われますが、基本的な機能が全てそろっているフルスタックのWebアプリケーションフレームワークです。

    またWeb上や本の情報、セミナーの開催などが多いので学習はしやすいフレームワークです。

    ちなみにLaravelの名前の由来は「ナルニア国物語」に登場する王都名からきています。

    CakePHP

    CakePHP(ケイク・ピー・エイチ・ピー)は「ケーキ作りのように簡単にPHPで開発ができるように」をコンセプトとして、2005年に初版がリリースされました。

    Ruby on Railsと同様に「設定より規約」を設計理念としており、他フレームワークのように設定を細かく記述するのではなく、規約を守ってコードを書くことで、開発者は本質的な業務に集中することができます。

    日本語のドキュメントが豊富ですが、覚えることが多いため学習コストは高めです。

    FuelPHP

    FuelPHPは後述するCodeIgniterをベースとして2011年にリリースがされました。

    Laravelと同様に後発のPHPフレームワークですが、他のフレームワークの優れているところを参考にして設計がされています。

    CakePHPの「設定より規約」とは反対にFuelPHPは「規約よりも設定」 を設計理念としています。

    そのため、コードを書く量は多めになりますが、自由度が高いです。

    覚えることは比較的少ないため、学習コストは低めです。

    小規模の開発案件との相性が良いフレームワークです。

    ZendFramework

    ZendFramework(ゼンド・フレームワーク)は2006年にゼンド・テクノロジーズよりリリースされたPHPフレームワークです。

    シンプルで柔軟な使い方ができ、拡張性に優れています。

    コードを非公開にすることができるので企業利用に向いています。

    Symfony

    Symfonyは2007年にリリースされたPHPフレームワークで、CakePHPと同様にRuby on Railsの影響を強く受けています。

    Laravelの台頭によって、シェアを奪われているものの、大規模の開発案件と相性が特に良いです。

    ドキュメントは整っているのですが、学習コストは高めです。

    CodeIgniter

    CodeIgniter(コードイグナイター)は2006年2月に初版がリリースされました。

    特徴は軽量でスピード重視な点です。

    規約が厳しくないため、PHPの理解があるエンジニアであればドキュメントを数時間読めば、開発に入れるほど学習コストは低めです。

    Phalcon

    爆速フレームワークといえばPhalconです。基本、PHPのフレームワークはPHPで書かれていることが大半ですが、PhalconはC言語で実装されています。

    ベンチマークではCodeIgniterの約2倍の速度で、メモリ使用量は3割ほど消費が少なという結果がでています。

    そんな速くて、軽いPhalconですが、日本語ドキュメントが少ないため、英語が読めないと少々苦戦します。

    Slim

    Slimは「マイクロフレームワーク」と呼ばれる、PHPフレームワークです。

    LaravelやCakePHPなどの「フルスタックフレームワーク」とよく比較をされます。

    学習コストが低く、とても軽量です。

    つくりたいアプリケーションがシンプルな場合に相性がとてもよいです。

    Yii

    Yii(イー)は2008年にリリースされました。

    「高速で安全で効率的なPHPフレームワーク」と公式サイトには記述があります。

    軽量で高負荷にも耐えられる設計となっていますが、日本での利用率はあまり多くはないのが現状です。

    Flight

    Flightは、「高速、シンプル、拡張可能なPHPのフレームワーク」と公式サイトには記載があります。

    ルーティングも簡単に行えますが、現状フリーランスの案件はほとんどないのが現状です。

    PHPフレームワークの選び方

    PHPフレームワークを下記のように比較をしてみました。

    PHPのフリーランスエンジニアとして案件を受注したいのであれば、現状、選ぶべきはLaravelもしくはCakePHPといえそうです。

     

    フレームワーク テクフリ案件数 Qiitaの記事数 stackoverflowでの質問数 学習コスト
    Laravel 68 7854 204
    CakePHP 55 1338 186
    FuelPHP 23 580 42
    ZendFramework 21 73 11
    Symfony 28 261 37
    CodeIgniter 6 234 3
    Phalcon 7 225 0
    Slim 6 289 9
    Yii 3 111 0
    Kohana 0 1 0

    PHPを使用する案件紹介

    テクフリに掲載のPHP案件をフレームワークごとに、一部ご紹介します。

     

    フレームワーク Laravel
    案件名 【PHP/Laravel】既存の求人サイトのフロントリプレイス
    月額単価 〜720,000円/月
    最寄駅 六本木駅
    業務内容 既存の求人サイトのフロントリプレイスを行っております。Javaで書かれたものをPHPに書き換えになります。

     

    実装をメインに担当をしていただきます。

    基本スキル ・PHP 7系、何らかのFW利用経験

     

    ・テストコード経験

    ・Dockerを使った開発経験

    ・「メインエンジニア」として携わった経験

    ・Java言語による開発

     

    フレームワーク CakePHP
    案件名 【PDM】プロダクトマネージャー
    月額単価 〜1,100,000円/月
    最寄駅 渋谷駅
    業務内容 ものの売り時をお知らせするアプリに関して、以下の業務を担当いただきます。

     

    ・アプリの利便性や各種KPIの向上のための、新しいサービス・機能の開発

    ・アプリにおける新しいサービス・機能のフィージビリティスタディ

    ・社内システムの企画、要件定義

    基本スキル ・自ら課題を発見・定義し、解決策を導き出すことのできる課題解決能力

     

    ・Webアプリケーションの開発経験および優れたスキル、プログラミング、DB、インフラといった、エンジニアリングに関する知識

    ・Webサービス、アプリに関するプロダクトマネジメントディレクション経験

    ・そのほか、企画立案〜リリースまでのマネジメント経験

     

    フレームワーク Symfony
    案件名 【Ruby】不動産会社検索の開発業務(PHPまたはRuby)
    月額単価 〜720,000円/月
    最寄駅 駒沢大学駅
    業務内容 自社運営サービス(WEB)の新規機能要件定義~開発に従事頂きます。

     

    自社サービスの新規事業のため要件修正が多くドキュメントも多くありません。*ヒアリングやソースから仕様理解できる必要があります。

    基本スキル ・PHP(バージョンは問わないが現状7を使用)での開発経験が3年以上

     

    ・Laravelを使った開発経験

    ・ドキュメントが揃っていない現場での経験

     

    今すぐシェアしよう!

    B!
    techcareer freelancetechcareer freelance


    上部へ戻る