はじめに
Laravel以外によく挙げられているフレームワークの一つ、それがCakePHP。初めて知った時はそんな認識だったのがCakePHPです。
当然それで終わり、はどうかと思ったので色々調べました。今回はその振り返りです。
そもそもどちらが先か?
まず始めに確認したのが何時ごろからフレームワークが出たのかです。
端的に纏めると
CakePHP 2005年3月頃
Laravel 2011年6月頃
でした。CakePHPはLaravelよりもかなり早い段階で登場しているフレームワークで、Laravelが比較的新しいと書かれていた理由がよく分かります。
CakePHP - Wikipedia
Laravel - Wikipedia
25年に渡る PHP の歴史
全体的な違い
CakePHP
Ruby on Railsに影響されたフレームワークで、「設定より規約」という設計思想を持っています。用意されている規約に沿った記述をすることで簡単に開発ができる、という考え方なので、設定ファイル等の手間が省けます。
Laravel
同じPHPのフレームワークであるSymfonyを土台に開発され、フレームワークとしての規約が少なく、機能も豊富にあるため自由に開発できるようになっています。
CakePHPとLaravelの違いは?どちらがおすすめかも解説
ここまでの内容を踏まえると
CakePHP ルールに則った開発を行うことで高速に開発出来る。ルール外のことをするのは難しい。
Laravel 拡張性が高く、柔軟性がある。
といった部分が全体的な違いと言えるでしょう。
細かな違い
設計における思想などの大まかな違い以外にも細かな違いとして、CakePHPには明示的なテンプレートエンジンがない点(設定変更することでTwigやSmartyなどのPHPのテンプレートエンジンを利用できるようにすることは可能です)、バリデーションはモデル側に書くなどの違いがあります。
Laravel | CakePHP | |
---|---|---|
テンプレート | Bladeテンプレート | 明示的なテンプレートはなし (TwigやSmartyなどのPHPのテンプレートエンジンは利用可能) |
エスケープ処理 | {{$test}}で自動エスケープ | h($user->bio)でエスケープ |
php | @ifや@foreachでphpに変換 | デフォルトの<?php ~> を使用 |
バリデーション | コントローラー側で行う バリデーションルールの操作がしやすい |
モデル側で行う バリデーションルールを型に入れる |
LaravelとCakePHPの違い
Laravel 11.x Bladeテンプレート
CakePHP バリデーション - 5.x
TwigやSmartyなどのPHPのテンプレートエンジンを利用できるようにする具体的な方法はこちらの記事をご確認ください。
CakePHP4でTwigテンプレートエンジンを使う方法
CakePHP+Smartyハイブリッドによるラクラク開発
まとめ
CakePHPは2005年3月頃に出てきた規約重視のフレームワークで、規約に則って開発を行うと効率的に進めることができるフレームワーク。
Laravelは2011年6月頃に出てきた規約が少ないフレームワークで、構成や設計を柔軟に変更できるなど、自由度が高いフレームワークだと分かりました。
今回はcakePHPとLaravelの説明にRuby on RailsとSymfonyというフレームワークが出てきました。
Ruby on Railsについて知りたい方はこちらの記事を
Ruby on Rails
Symfonyについて知りたい方はこちらの記事をご確認ください。
PHPフレームワークSymfonyとLaravelの徹底比較
参考資料:
CakePHP - Wikipedia
Laravel - Wikipedia
25年に渡る PHP の歴史
CakePHPとLaravelの違いは?どちらがおすすめかも解説
LaravelとCakePHPの違い
Laravel 11.x Bladeテンプレート
CakePHP バリデーション - 5.x
Ruby on Rails
PHPフレームワークSymfonyとLaravelの徹底比較
CakePHP4でTwigテンプレートエンジンを使う方法
CakePHP+Smartyハイブリッドによるラクラク開発
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/