新しい案件でLaravelを使い始めてみたので色々感想をまとめてみた。
PHP利用歴
- オレオレフレームワーク
- CakePHP 1.x/2.x
- Laravel 5.2 ← 今ココ(5.3への移行も検討中..)
最近のPHPで嬉しい点
Laravel 5.3は5.6.4以降のPHPで動くのであんまり使ってこなかった新機能をバリバリ使うようになりました。
- Closure
- Generator
- arrayの短縮形(
[1, 2, 3]
) - trait
\(^o^)/
今更感ありますがひと昔前のPHP文法を使ってたので便利さに感動した
Laravelの嬉しい点
- ルーティング設定が柔軟に出来る. 簡単なページではClosureも使えるし、ドメイン毎に設定するのも可能
- DB Migrationが便利. fluentな文法でスキーマ定義ができる. 様々な型(enum, json, jsonb等)のカラムが定義できる → 参考
- Query Builderが便利。fluentな文法で生SQLじゃなくても複雑なクエリーが記述できる → 参考
- Validationが使いやすい(CakePHP2ではValidationとModelがくっついていた) → 参考
- Cache::remember()が便利 → 参考
- Collectionが便利.
array_*
関数さようならw → 参考 - artisan serve (簡易Webサーバー機能)が便利
- artisan tinker(REPL機能)が便利. これでドキュメントを探さなくても実際の挙動等を確認できる.
- Task Schedulerでcrontab触らなくて良くなった → 参考
- SocialiteでOAuth認証も楽勝!
Laravelの困った点
- EloquentとQuery Builderの違いに戸惑った
- Relationを返すメソッドとプロパティの違い → 参考
- Form Helperが無い. 手で書く必要がある
- dotenvファイルの管理方法に悩む
- Query Builderで取得できる結果がStdClassなので振る舞いを持たせられない. 後に解決
- 巨大なテーブルをcursorで1行ずつ処理しようとしたらメモリー不足でコケる件
- なんでQueue Driverのデフォルト値(.env.sample)がsyncなのか...
- MySQLのcollationの設定が
utf8_unicode_ci
になっている. config/database.phpを編集すればOK
これから調べる
- Task Schedulerのプロセス監視
- Queueの監視
- Test関連
- ACL
- Elixir
- Supervisor上で動いているQueue Workerを安全に止める方法
- ログローテート
- チューニング