Author: hikaru

Laravel 11.xのインストールNEW! 

早いものでL10がリリースされてからもう1年が経ちました。個人的な感想ですがL10では正直なところそこまで大きな変更が無かった様に思います。しかし大抵その様な場合は水面下で激しい議論が酌み交わされており次バージョンにてドラスティックな変更がやってくるもの。さてさてL11はどうなるやら、一緒に見ていきましょう!

Policyで認可チェック修正あり! 

認証済みのユーザが持つ権限に応じて実行可能な操作を制限したいケースがよくあります。例えば、ブログアプリにおいて記事の編集・削除が可能なのは投稿者に限定するなど。所謂、アクセス権の制御が必要となるケースです。Laravelではそれら「認可」の実装方法としてPolicyが提供されています。

メールをログに出力する

ローカル環境におけるメール送信部分を確認する際に以前の記事でMailtrapやMailhogを活用した方法を紹介していますが、もっと原始的且つ手っ取り早い方法としてLogに出力して確認するというオプションもあります。今回はそちらの方法をご紹介致します。

コマンドにプログレスバーを追加する

一度に大量のデータを更新する必要がある時などはArtisanコンソールコマンドでバッチを作成して実行します。その際に更新に時間が掛かって途中で何も出力が無いと処理が正常に進んでいるのか不安になってしまいます。そんな時はプログレスバーを表示すれば進捗が確認できて便利です。

GROUP_CONCATの上限

先日携わっているプロジェクトにおいてとある不具合に遭遇しました。DBから取得したデータが一部欠損していたのです。調査したところデータを取得する際のクエリにおいてGROUP_CONCATが使用されており、そちらの上限をオーバーした事が原因でした。今回は直接Laravelと関係する訳ではありませんが、LAMP環境を運用する上で遭遇するかもしれない事象という事で備忘録としてまとめます。

ProcessファサードでLinuxコマンドを実行する

webアプリにおいても時折、シェルスクリプトやLinuxコマンドなどを実行したい場合があります。そんな時、従来はexec()やsystem()を使用して実行していましたが、Laravel10からはProcessファサードが導入されLaravel的なインタフェースが用意された事でより直感的且つ読み易いコードが書けるようになりました。今回はProcessファサードの基本的な使い方を解説したいと思います。

クエリの累計時間にタイムアウトを設定する(2)

前回の記事にてタイムアウトとなった場合に2種類の例外がスローされる事を説明しました。クエリ実行中にタイムオーバーとなった場合は、QueryException。クエリ実行外でタイムオーバーとなり、その後クエリを実行してエラーとなる場合は、自作したTimeoutExceptionです。今回はこれらのエラーをどうキャッチしてハンドリングするのか解説します。