ニュース・ブログ

ニュース・ブログ一覧PHPの記事情報LaravelとCakePHPの違い

LaravelとCakePHPの違い

こんにちは。matsubaraです。
今回はLaravelCakePHPの違いについて調べました。

 

人気の違い

Googleトレンドでは2017年度からLaravelの人気が上がっています。

逆にCakePHPでは人気が減少気味です。

引用元:Google https://trends.google.co.jp/trends/explore?date=today%205-y&geo=JP&q=CakePHP,Laravel

 

全体の違い

Laravel

  • 柔軟性が高い。
  • 比較的に最新の技術や流行に対して対応力が高い。

CakePHP

  • 規約が厳しい。
  • シンプルに開発を進められる。
  • 開発メンバーの共有がしやすい。

 

テンプレートの違い

Laravel

  • テンプレートエンジンBladeを使用。
  • htmlspecialcharsのエスケープ処理。 {{ $test }で自動エスケープ
  • phpタグ。@if, @foreachでphpタグを使用。

CakePHP

  • テンプレートエンジンなし。
  • htmlspecialcharsのエスケープ処理。<?= h( $test ) ?>でエスケープ
  • phpタグ。phpのデフォルト<?php if  ?>を使用

 

ルーティングの違い

LaravelとCakePHPのルーティング機能は、ほとんど同じです。

Laravel

  • 基本。
    Route::get(‘/users’, [UsersController::class, ‘index’]);
  • 必須パラメータ。
    Route::get(‘/users/{id}’, [UsersController::class, ‘index’]);
  • プレフィックスルーティング。
    Route::prefix(‘admin’)->group(function () {  });

CakePHP

  • 基本。
    $builder->connect(‘/users’,  [‘controller’ => ‘Users’, ‘action’ => ‘index’]);
  • 必須パラメータ。
    $builder->connect(‘/users/:id’,  [‘controller’ => ‘Users’, ‘action’ => ‘index’]);
  • プレフィックスルーティング。
    $routes->prefix(‘admin’,  function (RouteBuilder $routes) { });

 

バリデーションの違い

Laravel

  • コンローラー側でバリデーションを作成。
  • バリデーションのルールを自由自在に操作しやすい。

CakePHP

  • モデル側でバリデーションを作成。
  • バリデーションのルールを型にはめるイメージ。

 

実際に両方をやってみた感想

習得の難易度は同じぐらいでした。

CakePHPができるならLaravelもできるし、LaravelができるならCakePHPもできます。

ただ、フォルダー名やファイル名が全然違うのでそこはめんどくさかったです。

あと、Laravelの方がVueやReact、SCSSなど最新の技術を取り入れやすかったです。

そこはLaravelの方が優勢なので、もし初めて習得したいならLaravelの方がいいと思います。