CakePHPerからみたLaravel
はじめに
業務に CakePHP を使っていたのですが、最近 Laravel を触り始めました。
CakePHP と Laravel の比較ができればと思いまとめてみました。
なお、比較は CakePHP 3.5 と Laravel 5.7 でしています。
CakePHP でいう bake はどうなの?
データベースのテーブルからモデルを作るのはデフォルトでは採用されていないっぽい
view を作る artisan はないらしい
- PhpStorm が Blade がデフォルトでは効かない
artisan
prefix はないっぽい
Eloquent
- has many リレーションで through をサポートしているっぽい(CakePHP は確か belongsToMany でしか使えない)
- アソシエーションを保存するときはトランザクションを自前で書かないといけない
-> CakePHP は saveAll() で内部的にトランザクションをしてくれたはず
Valiation
unique は data のアップデートでも弾く
Storage
Flysystem(ファイルを抽象化して扱えるライブラリ)がデフォルトで組み込まれており、便利
デザイン
- Bootstrap がデフォルトで入っている
バリデーション
- Controller でやるっぽい(FormRequest を拡張するのが良さそう)
ルーティング
自前でかかないといけない
Laravel 自前で書かないといけない(/:controller/:action
という記法でかける Cake のほうが特殊だと思う)だけあって、 php artistan route:list
したときの URL がきれい
Routing にそのまま view を渡せる
CakePHP だと、PagesController などに渡さないといけない(もしかしたらできるのかも)
ビュー
Theme っぽいのはない?
Formヘルパー的なのはデフォルトでは含まれていないようだ
こちらでメンテナンスされているっぽい
FlashHelper
Laravel は自前で書かないといけない
テスト
単体テスト、アプリケーションテスト、ブラウザテストというのがあるらしい 大きく分けて、
Dusk
Dusk でブラウザのテストができるっぽい
入れたデータは自動では消してくれないっぽい
IDE
PhpStorm
まとめにならないまとめ
Laravel
- 開発環境は整えやすい(Homestead)
- Storage がいい感じ
- AWS のサポートが手厚そう(Storage::disk('s3')とか)
- Duskテスト便利
- 自由度高いけど、どこまで案件で必要になるのか。。。
- 各ライブラリが GitHub のスター数が多いのがよくわからない(それだけ汎用的なのか???)
- ゴリゴリ書きたい人向けか?
- PHP でスタートアップとか便利そう
- パッケージ管理システムに良さそう
- テストがないときつい
- Middleware がいい感じ
CakePHP
- 開発は早い(bake がすごい)
- ドキュメント充実
- オールインワン(Number とかでファイルサイズを読みやすい形式にしてくれるやつ便利)
- CakePHP 3 は自由度高いよ!