LaravelとCakePHPの違い
投稿日:2022年4月8日 / 更新日:2022年4月11日
こんにちは。matsubaraです。
今回はLaravelとCakePHPの違いについて調べました。
目次
人気の違い
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の方がいいと思います。