Search

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

2019年01月18日

CakePHP Laravelどっちを勉強すべき?特徴は?

PHP用フレームワークとして、最近なにかと話題の「Laravel」。そして、昔から安定した人気の「CakePHP」。どっちが使いやすいフレームワークか徹底比較しました。Web開発のフレームワーク選びの参考になれば幸いです。

多様化が進むWebアプリケーション開発には、もはやフレームワークは必要不可欠になってきました。PHP用のフレームワークはたくさん公開されていますが、最近、特に注目度の高いフレームワークといえば、CakePHPかLaravelでしょう。

「どっちがいいの?」という疑問を持つ方も多いのではないでしょうか。今回は、この2つのフレームワークの違いや特徴について解説していきます。

どうしてフレームワークは必要?

フレームワークを使わないWebアプリケーション開発を考えてみます。

例えば、会員制サイトによくあるログイン画面を例に挙げてみます。どのようなログイン画面においても、以下のようなプログラミングが必要になってくるでしょう。

  • ログイン画面の作成
  • ユーザ認証処理
  • ユーザ情報の登録処理
  • 認証後にマイページへ遷移

これらすべての処理をゼロから開発するとなると、大変時間のかかる非効率な開発になってしまいます。ほとんどのフレームワークには、多少の違いはあるにしても、ある程度の骨格がすでに用意されています。開発者は必要な部分だけをプログラミングするだけでよいです。

最近Laravelの人気が上がっている?

ほんの一昔前までは、PHPのフレームワークといえば、手軽に素早くWeb開発ができるCakePHPが、かなり人気でした。ところが最近では、Laravelの人気がCakePHPを凌ぐほど上昇しています。

人気の理由の前に、ここではまず、LaravelとCakePHPについて、ご紹介します。

Laravelとは?

Laravelは、2011年に公開が始まり、現在、最も注目の集まるPHP用フレームワークです。PHP用フレームワークの中では比較的新しいです。フルスタックフレームワークと呼ばれる統合的な機能をもったフレームワークです。MITライセンスの元でフリーで配布されています。

注目度がCakePHPを上回る

Laravelは、2014年から注目されるようになり、2017年には他のフレームワークと肩を並べるほどの注目を集めました。2019年現在、CakePHPを上回り、最も人気のあるPHP用フレームワークです。

CakePHPとは?

2005年から公開が始まり、今もなお、安定した人気のPHP用フレームワークです。開発実績や情報量がとても豊富です。Laravel同様、フルスタックフレームワークで、MITライセンスの元でフリーで配布されています。

手軽さが支持され人気がでました

CakePHPには、あらゆる雛形を自動生成してくれるbakeというコマンドが用意されています。
まるでケーキを焼く(bake)ように、手軽に開発することが可能です。しかし、後発のLaravelにも同じような仕組み(artisan)が用意されています。そういった意味では、存在価値が薄れつつあります。

Laravelが人気の理由を検証!

LaravelとCakePHPは、どちらも統合的な機能をもったフレームワークです。プログラムソースの自動生成機能も充実しています。しかし、フロントエンドに比重を置いたWeb開発が盛んになってきたことで、フレームワークに必要な役割が変化してきています。この点、後発のLaravelの方が時代にマッチしています。

ここでは、Laravelの人気の理由をCakePHPと比較しながら検証していきます。

Laravelはディレクトリ構成が柔軟

通常のフレームワークはMVCと呼ばれる、モデル、ビュー、コントローラーを指定の位置にまとめて配置するのが一般的です。これらの配置場所はフレームワークによってルールが決められているので、開発者が自由に変更することは原則できません。

CakePHPのディレクトリ構成は?

一般的なフレームワーク同様、モデル、ビュー、コントローラーは配置場所が決まっています。

CakePHPのディレクトリ構成(一部抜粋)
src
|-Controler(コントローラの配置場所)
|-Model(モデルの配置場所)
|-View(ビューの配置場所)

Laravelのディレクトリ構成は?

初期段階でディレクトリ構成は決まっていますが、特に制限はありません。ユーザが任意の場所に配置しても問題ありません。

そもそも、モデルの配置場所は初期段階から決まっていません。多様化したWeb開発に合わせて、柔軟にファイルを配置することができます。

Laravelのディレクトリ構成(一部抜粋)
app
|-Http
|-Controllers(コントローラーの配置場所)
|-Resouces
|-views (ビューの配置場所)

Laravelはバリデーションも柔軟

バリデーションとは、ユーザが入力した値が適切であるかどうかチェックすることです。

CakePHPでは、バリデーションをモデルかテーブルに用意することになっています。そのため、開発当初から、モデルかテーブルの作成が必要になります。

Laravelではこのバリデーションがコントローラーに用意されています。モデルやテーブルを用意するタイミングは後からでもよいので、柔軟な開発ができます。

Laravelはファイルアップロードが手軽

フレームワークなしのPHPでファイルのアップロード処理を行うと、なにかと面倒です。
サーバーに送られてきたファイルは一時ファイルとして格納されるので、ファイルを保存したい場合、自分でファイルを移動する必要があります。またデータベースに登録したい場合も、画像データを取得し、自分で登録処理をおこないます。

CakePHPのファイルアップロードは?

それほど便利な仕組みは用意されていません。リクエストから一時ファイル名が取得できますので、自分でファイルを移動します。

move_uploaded_file( $this->request->data['file_name']['tmp_name'], 'imagedir/sample.jpg' );

Laravelのファイルアップロードは?

アップロードされたファイルは、オブジェクトとして取得できます。直感的にファイルを保存することができます。しかも、ローカルディスクに限らず、クラウドストレージにもパラメータの追加だけで簡単に保存ができます。

$request->file->storeAs( 'imagedir' , 'sample.jpg' );

CakePHPは規約が厳しい

CakePHPは「設定より規約」という考え方なので、コントローラー名、モデル名、データベース名などには、すべて命名規約に従う必要があります。

例えば、コントローラ名は、「HomeController」のように最後にContoroler をつけます。ビューは「Home/index.ctp」のように、コントローラー名に合わせてアンダースコアー記法で命名する必要があります。

「設定より規約」は「手軽だが制限」

設定ファイルにあらゆる値を保持しておくことなく、コントローラーやビューを結びつけることができますが、規約を覚えるための学習コストがかかったり、規約を忘れてしまうと復讐しなおすコストもかかります。

Laravelのフロントエンド技術は先進的

フロントエンドのライブラリといえば、JQueryが圧倒的に有名ですが、最近では、高度化するフロントエンド技術にJQueryが適さなくなってきました。Laravelは、JavaScriptフレームワークにVue.jsが用意されています。Vue.jsは、JQueryとは全く異なる仕組みで、動的なページを簡単に作成することができます。

これからのフレームワークはLaravel

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

PHPは、速度面を重視したフレームワーク、開発スピードを重視したフレームワーク、柔軟性を重視したフレームワークと個性豊かなフレームワークが多数存在します。Laravelは、後発である利点を生かして、最新の技術や仕組みをバランスよく取り入れた優秀なフレームワークです。
これからPHPでWebアプリケーション開発を始めるのであれば、Laravelは、おすすめのフレームワークです。

フレームワークの特徴をよく理解した上で、最適なフレームワークが見つかれば幸いです。

【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