Search

検索したいワードを入力してください

2019年01月31日

PHPフレームワークを紹介|Laravel、CakePHP他

PHP言語で利用されているPHPフレームワークの基礎について、プログラミング初心者でもわかりやすいように解説しています。PHPには個性的なフレームワークが多数存在しますので、これらの特徴や違いについても解説しています。自分に合ったものを探してみてください。

フレームワークとは?

フレームワークとは、どのようなアプリケーション開発においても必要となる機能を集めたプログラムのことです。プログラマは、フレームワークにはない機能だけをプログラミングするだけでよいので、開発効率が格段に向上します。近年のWebアプリケーション開発では、必要不可欠な存在となっています。

フレームワークを料理の世界で例えるなら・・・

フレームワークなしの開発は「家庭料理」

例えば、あなたが自宅で料理をするとします。最初にあなたが食べたい料理を考えます。次に料理の材料をスーパーまで買いに行きます。家に帰ったら食材をカットしたり調理します。でき上がった料理を自分で食べることにします。

すべての事を、ひとつひとつ作業(プログラミング)して、最後に食べます。(アプリをリリースします)

フレームワークを利用した開発は「レストラン経営」

今度は、あなたはレストランのオーナーになったとします。あなたは、お客さんの注文よりも前に、食材を仕入れておくでしょう。場合によっては、食材をカットしておいたり調理しておくはずです。

これはフレームワークの考え方とよく似ています。お客さんから注文(仕事の依頼)があったらすぐに料理を提供(アプリをリリース)できるように工夫(フレームワークを利用)するはずです。しかもフレームワークの場合、何度でも再利用することができます。

PHPでフレームワークを使うメリットは?

PHPでWebアプリケーションを開発する場合、フレームワークを利用するとたくさんのメリットがあります。ここでは、フレームワークを使うメリットについて、具体的にいくつか紹介していきます。

メリット1:開発が簡単になる

一番のメリットは、なんといっても開発効率が格段に上がることでしょう。PHPとは、本来、動的なHTMLを出力するためのプログラミング言語です。

Webサイトの一部に、少しプログラムを追加するくらいなら、フレームワークは必要ないでしょうが、Webアプリケーションの開発となると機能や仕組みが足りていません。すべてをゼロから開発していては、大変効率の悪い作業となってしまいます。

最近のPHPフレームワークはどれも学習コストが低くなるように考えられているので、フレームワークの使い方さえ学んでしまえば、開発期間をぐんと短くさせることができます。

メリット2:チームでの開発がしやすい

チームで開発する場合、もしプログラマが10人いたとしたら、プログラムの書き方は10人全員が違います。同じ結果になるプログラムを書いたとしても書き方は全員違うでしょう。

フレームワークを使わないということは、書き方がバラバラのプログラムができてしまうのことになるので、後々のプログラム修正やメンテナンスでとても苦労することになります。

フレームワークを利用することで、大規模なプロジェクトであっても、統一された、まとまりのあるシステムができあがります。

メリット3:仕事が取りやすくなることがある

受注先から仕事の依頼があった場合、受注の時点でどういったフレームワークを使用してほしいが指定される場合もあります。指定されたフレームワークの知識が豊富にあれば、仕事もスムーズに引き受けることができるでしょう。

仕事を引き受けてから、フレームワークを理解しても問題ないでしょうが、少なくともフレームワークの考え方くらいは知っておいた方がいいでしょう。

メリット4:プログラミングスキルが向上する

フレームワークの開発には、世界的にも優秀なエンジニア達が開発に携わっています。また、現在のWebアプリケーション開発のために必要な仕組みやアイデアがたくさん詰まっています。

PHPフレームワークのプログラムは、オープンソースなので、誰でもその内容を読むことができます。実際のフレームワークの中身を参考にすれば、自分のプログラムに応用したり、自作のフレームワークを開発することもできるようになるでしょう。

メリット5:品質がよくなる

世の中に公開されているフレームワークは、日々バグ修正されているため、品質が悪いということはありません。フレームワークを利用すれば、結果的に自分で試行錯誤したプログラムの量を減らすことができるので、Webアプリケーションの品質は上がります。

PHPフレームワークが増加傾向

2000年代の前半までは、まだPHPでフレームワークを使用した開発はあまり一般的ではありませんでした。そのため、当時はPHPフレームワークの数もそれほど多くありませんでした。近年では個性のあるPHPフレームワークが多数公開されるようになってきました。

有名なPHPフレームワークだけでも以下のようなフレームワークがあります。

  • Laravel
  • CakePHP
  • Codeigniter
  • Symfony
  • FuelPHP
  • Phalcon
  • Zend framework
  • Yii
  • PHPixie
  • Slim
  • Ethna

新しいフレームワークが増える理由

Webアプリケーションが高度化するに合わせて、フレームワーク開発者も日々フレームワークをバージョンアップしています。しかし、既存のフレームワークの資産が弊害となり、開発ペースは徐々に遅くなる傾向があります。

そのため、新しくフレームワークを新規開発した方が、世の中にマッチしたフレームワークにしやすいです。

PHPフレームワークの注目度シェアはどれくらい?

PHPフレームワークの利用率は、Webアプリケーションの高度化に合わせて、年代とともに変化しています。

残念ながら、国産のPHPフレームワークは、あまり普及していないのが現状なので、日本の場合、海外のフレームワークを利用することが一般的です。そういった意味でも、日本と海外でも利用率はかなり違っています。

ここでは、日本と海外の注目度の違いについて見ていきます。

日本での注目度シェアは?

日本では、2015年までは、CakePHPが圧倒的に人気でしたが、2016年頃からLaravelの人気がCakePHPを上回るようになってきました。

また、2000年代は、まだ、フレームワークの数も今にくらべて少なかったことから、Symfonyの人気もそれなりにありましたが、近年ではあまり注目されていません。現在の日本では、Laravelが最も人気ではあるものの、CakePHPとLaravelが人気を独占しています。

海外での注目度シェアは?

海外では、Laravelの人気が、日本と同様に圧倒的に高いですが、CakePHPはそれほど注目されていません。むしろ、最近ではCakePHPは注目度が下がりつつあります。他のフレームワークについては、国毎にシェアが異なる傾向があります。

インドを中心に、CodeIgniterの人気が高いです。Symfonyの開発国であるフランスでは、Symfonyの人気がいまだ根強くあります。

おすすめのPHPフレームワークを一挙紹介!

現在、PHPフレームワークは多数存在しますので、どのPHPフレームワークを使ったらいいのか、わからない方も多いでしょう。ここでは、おすすめのPHPフレームワークについて、詳しくご紹介していきます。

モダンで万能なフレームワーク「Laravel」

現在、最も人気のあるPHPフレームワークです。世界的にも、とても人気があります。Laravelは、Taylor Otwellによって開発され、2011年にバージョン1.0が公開されました。

PHPフレームワークの中では比較的新しいフレームワークです。フルスタックフレームワークと呼ばれる統合的な機能をもっています。MITライセンスの元でフリーで配布されています。

Laravelのおすすめポイントは?

ディレクトリ構成が柔軟

モデル、ビュー、コントローラーを、システムによって決められたルールで配置する必要はありません。開発ケースに合わせて、柔軟な開発に適しています。



// http://xxxxx.com/homeにアクセスするとUser\MyControllerのshowが呼ばれる
Route::get('/home', 'User\MyController@show');

自動生成ツール「artisan」で簡単開発

ソース自動生成コマンド「artisan」を実行するだけで、コントローラーやモデルの雛形が一瞬ででき上がります。artisan用のコマンドをPHPで自作することもできます。

【コントローラーの雛形を自動生成】


> php artisan make:controller MyController
Controller created successfully.

【コマンドの雛形を自動生成】

> php artisan make:command MyCommand
Command created successfully.

【自作コマンドを実行 】※mycommandで登録した場合

> php artisan mycommand

他のフレームワークのいいとこ取り

Laravelは後発であることの利点を活かして、他のフレームワークのいいところをたくさん取り入れています。最新の技術や仕組みで開発されているのでモダンな開発ができるのが魅力です。

Laravelが活かせる仕事とは?

最先端な技術を多く取り入れたフレームワークのLaravelの特徴を活かすなら、特に、高度なWebアプリケーション開発を行いたい場合や、機能追加が頻繁にあるスピーディなプロジェクトには最適です。

柔軟な開発ができる分、チームで開発する場合には、ある程度、開発方針を定めておいたほうが失敗が少ないでしょう。

Laravelの詳細についてはこちらから
CakePHP Laravelどっちを勉強すべき?特徴は?

とにかく簡単なフレームワーク「CakePHP」

2005年からcakeソフトウェア財団によって開発が始まり、今もなお、安定した人気のPHP用フレームワークです。開発実績や情報量がとても豊富です。

フルスタックフレームワークで、MITライセンスの元でフリーで配布されています。日本では、昔から根強い人気のPHPフレームワークです。

CakePHPのおすすめポイントは?

「設定より規約」で簡単開発

CakePHPは「設定より規約」を重視したフレームワークです。CakePHP独自の規約を学習するのに少し時間がかかりますが、あらゆる設定ファイルの管理が限りなく必要なくなるので、高速な開発が可能となります。

自動生成ツール「bake」で高速開発

ソース自動生成コマンド「bake」を実行するだけで、コントローラー、モデル、ビュー、テーブルといった、あらゆる雛形が一瞬で完成します。

Laravelの「artisan」より優れている点は、1回のコマンドでコントローラーからテーブルまでを一度に自動生成してくれるところです。これはCakePHPの「設定より規約」の思想がないと実現できません。

【コントローラーの雛形を自動生成】

> bin\cake bake controller Users
Baking controller class for Users...


【まとめて雛形を自動生成】

> bin\cake bake all Users
Bake All
---------------------------------------------------------------
One moment while associations are detected.
...

CakePHPが活かせる仕事とは?

手軽に開発できるCakePHPの長所を活かすなら、オーソドックスなWebアプリケーション開発には最適です。

ただし、特殊な機能を追加したい場合、どうやって直していいかわからないという問題が出てきたりと、途端に開発が難しくなる危険性があります。アプリケーションの将来性も視野に入れて、今後、規模や修正がそれほど変わらない開発案件に適しています。

CakePHPの詳細についてはこちらから
CakePHP Laravelどっちを勉強すべき?特徴は?

軽量で高速なフレームワーク「CodeIniter」

EllisLabs社によって開発されたフレームワークで、2006年に最初のバージョン1.0がリリースされました。2014年ブリティッシュコロンビア工科大学に開発を引き継ぐことになり、この時、バージョン3.0.0がリリースされました。

開発当初は、独自のオープンソースライセンスでしたが、バージョン3.0.0のリリース時、MITライセンスに変更されました。

CodeIgnitorのおすすめポイントは?

処理速度が速い

CodeIgnitorは、フレームワークの容量自体、2MB程の軽量なフレームワークです。必要最低限のクラスでフレームワークは構成されているので、処理速度が早いのが特徴です。

一見、他のフレームワークよりも劣っているように思えますが、フレームワークとしての必要な機能は、ほとんど用意されています。

学習しやすい

シンプルなフレームワークなので学習することが非常に少ないです。公式サイトのドキュメントも充実していてわかりやすいです。ある程度、フレームワークの基礎が理解できていれば、1週間程でマスタできるはずです。

Codeigniterが活かせる仕事とは?

軽量で高速に動作するCodeigniterの特徴を活かして、アクセス数の多い(また多いことが見込まれる)Webアプリケーションの開発には最適です。

PHP言語の古い技術で開発されているので、モダンな開発には向かないでしょう。学習コストは低いので、小規模な案件なら選択肢の一つにいれてもいいでしょう。

スケールが大きいフレームワーク「Symfony」

フランスのSensio Labs社が開発したPHPフレームワークです。2005年にバージョン1,0がリリースされました。交響曲を意味する「Symphony」ではなく「Symfony」です。

初期の名称である「Sensio Framework」のsfからSymfonyと命名されたそうです。MITライセンスの元でフリーで配布されています。

Symfonyのおすすめポイントは?

サポートが手厚い

Symfonyは、開発から保守まで頑健なシステム開発を目的として作られているので、とにかく高機能です。

Sensio Labs社という企業がしっかりサポートしているので、大規模なシステム開発にも安心して利用できます。Sensio Labs社があるフランスでは、現在でもSymfonyの人気が最も高いです。

Symfonyが活かせる仕事とは?

世界的に実績も豊富で安定したフレームワークのSymfonyの特徴を活かして、堅実な業務アプリの開発には適しているでしょう。日本では、技術的な情報量が少なく、後発のフレームワークにも押されていますが、安定感はあるので、大規模な開発にも向いているでしょう。

企業内のシステムをプロジェクトで開発する場合にもマッチしています。

モダンで高速なフレームワーク「FuelPHP」

2010年10月、FuelPHPプロジェクトによって開発が始まったPHPフレームワークです。2011年にバージョン1.0がリリースされました。

比較的、新しいフレームワークです。FuelPHPの開発者の何人かは、元々CodeIgniterの開発にも携わってたという経緯があるので、CodeIgnitorをベースに、新しい技術を取り入れたフレームワークといえるでしょう。MITライセンスの元でフリーで配布されています。

FuelPHPのおすすめポイントは?

高速に動作する

CodeIgniterには劣りますが、FuelPHPも高速に動作します。FuelPHPの開発者は、CodeIgniterの開発にも携わっていただけあって、処理速度は良いです。

ただ、FuelPHPは、PHP言語の新しい仕組みを積極的に採用しているので、速度面をやや犠牲にしていると言われています。

他のフレームワークのアイデアを活かしている

後発のフレームワークの利点を活かして、他のフレームワークの良いところをうまく取り込んでいます。そのため、モダンな開発ができます。

他のフレームワークにはない新しい考え方も存在します。HMVC(Hierarchical MVC)というFuelPHP独自の仕組みを使えば、コントローラー同士でデータをやりとりすることができます。

自動生成ツール「oil」が便利

後発なフレームワークなだけに、自動生成ツールも用意されています。「oil」というコマンドを利用します。

【コントローラー、ビューの雛形を自動生成】
> php oil generate controller User
Creating view: /fuelPHP/app/views/template.php
Creating view: /fuelPHP/app/views/user/index.php
Creating controller: /fuelPHP/app/classes/controller/user.php

FuelPHPが活かせる仕事とは?

軽量で高速に動作するFuelPHPの特徴を活かして、アクセス数の多い(また多いことが見込まれる)Webアプリケーションの開発には最適です。また、新しいバージョンのPHPで動作するので、比較的大きなプロジェクトでも十分、管理しやすいでしょう。

世界的なシェアはそれほど多くなく、情報量がまだ少ないので、短期間での機能追加や、修正には苦労するでしょう。柔軟性はあるので、高度なアプリケーション開発を行う場合にも最適です。

フレームワークの特徴を並べて比較

今回紹介したフレームワークの特徴をまとめてみました。

V1.0リリース時期開発元情報量
Laravel2011年コミュニティ普通(今後は増える?)
CakePHP2005年コミュニティ多い
CodeIgniter2006年企業 → 大学多い
Symfony2007年企業少ない
FuelPHP2011年コミュニティ少ない
柔軟性処理速度高機能
Laravel
CakePHP
CodeIgniter
Symfony
FuelPHP

一番のおすすめフレームワークはLaravel!

PHPフレームワークには色々な特徴や違いがあるものの、これからのWebアプリケーション開発をするのであれば、現在とても人気の高いLaravelがおすすめです。今後、コミュニティも活発になってくることが予想されます。

Laravelは、後発である利点を生かして、最新の技術や仕組みをバランスよく取り入れた優秀なフレームワークです。これを機会に、一度Laravelを学んでみるのもよいでしょう。

まとめ

いかがだったでしょうか。

今回、ご紹介したフレームワーク以外にも、すばらしいフレームワークが多数存在します。PHPには、速度面を重視したフレームワーク、開発スピードを重視したフレームワーク、柔軟性を重視したフレームワークと個性豊かです。今後も、時代のニーズに合わせた、新しいフレームワークが増えてくるでしょう。

開発するアプリケーションに最適なフレームワークを選択する事は、後々の開発を進めるうえでもとても重要です。フレームワークの特徴をよく理解した上で、最適なフレームワークが見つかれば幸いです。

【PR】多くの人がプログラミングを諦めてしまう理由をご存知ですか?



近年プログラミングを勉強する人が増えています。

プログラミング学習者の多くは独学から取り組もうとしますが、だいたい80%ほどは3ヶ月も続かずに諦めてしまいます。早い人は1日目で。

多くの人がプログラミングを独学しようとして諦める理由は、次の3つ。
●モチベーションが維持できない
●エラーの原因・解決方法が分からない
●どう学習すればよいか分からない

TechBoostというプログラミングスクールでは、みんなと一緒にプログラミングをするのでモチベーションの維持ができ、分からないことがあればマンツーマンで教えてくれ、徹底的に研究された初心者向けの教材が揃っています。

TechBoostを卒業後、実際にエンジニアとして転職した方もいるほど。

本気でプログラミングを学びたい方は、一度無料のカウンセリングでご相談ください。プログラミングを嫌いになる前に。

tech boostについて

オーダーメイド型の学習コンテンツを提供する「tech boost」 は、エンジニアのキャリア支援に特化したサービスを複数展開している株式会社Branding Engineerが運営しているプログラミングスクールです。最短3ヶ月間で、未経験から『プログラミングの基礎』、『実際に業務で必要となるスキル』、『今のトレンドとなっている知識』まで学べ、ご希望の方にはプロのキャリアアドバイザーによる就業支援を行うことができます。

tech boost卒業生インタビュー

tech boostの卒業生の声を聞きました。あなたがプログラミングを学びたい理由を、一度考えてみてください。
営業→Javaエンジニア→Rubyエンジニアと転向し、第一志望のFinTech企業で働く山下さん
元営業、ビジネスのわかるエンジニアを目指す菅原さん
サンフランシスコに交換留学し、シリコンバレーのVCでインターン中の梅本さん
予備校の営業から半年でエンジニア転職を果たした小田島さん

tech boostの口コミ



Related