Laravel FormRequestのユニットテスト(1)NEW!
Laravel12.xでFormRequestのユニットテストを作成します。今回の記事では基本的なテストから、少しややこしい$this->route()のようなルートパラメータを取得する必要がある場合の書き方などをご紹介します。
Laravel12.xでFormRequestのユニットテストを作成します。今回の記事では基本的なテストから、少しややこしい$this->route()のようなルートパラメータを取得する必要がある場合の書き方などをご紹介します。
前のことになりますが、Laravelのバージョン8以降よりユーザー画面のアセットのビルドのためにViteが登場しています。しかし私のプロジェクトでは、Boostrapのフレームワークを使用しておりjQueryとその関連のライブラリをヘビーに使用していてなかなか従来のwebpackベースのLaravel Mixからは抜け出すことができません。何度かは試みたものの解決できないエラーが出て挫折を繰り返すのみでした。しかし、最近やっとその移行に光が見えてきました。Viteのビルドのスピードと開発環境は良いです。
前回に作成した禁止用語をフィルターするミドルウェアに今度はパラメータを渡してみます。例えば、管理者権限を持つユーザーなら禁止用語を隠さずに見れる。
前回に紹介したLaravelのグローバルミドルウェアですが、必要に応じてカスタムのミドルウェアを作成することも可能です。今回は、入力文に含まれる禁止用語を自動的に隠す(***で置換する)ミドルウェアを例として作成します。
LaravelのミドルウェアはHttpのGETやPOSTなどのリクエストでアプリに入ってくるリクエストの中身をチェックしたり必要なら変えたりする重要なコードです。このミドルウェアの設定は、L11.x以前ではapp/Http/Kernel.phpというファイルの中身に含まれていてわかりやすかったのですが、L11.x以降はLaravelのライブラリの奥に入ってしまい日の目をみなくなってしまいました。これらを引っ張りだしてLaravelのミドルウェアがどのように使用されているか紹介します。
テストを書くとき、テストパターンや入力値の組み合わせが増え、データの管理が煩雑になりがちです。Pestではwith()やdataset()を使って基本的なデータ整理ができますが、後から読んでも理解しやすい・修正しやすいコードを目指して、Combining DatasetsやSharing Datasetsを活用し、テストコードを整理してみます。
皆さんは、DGFTのベリトランスの支払決済のPHPのSDKキットを使用したことありますか? それを利用するには彼らのウェブサイトからファイルをダウンロードして、プロジェクトに置いてそれをパッケージとしてインストールします。今回はその仕組みの説明です。ローカルにパッケージを作成してそれをcomposer requireします。
PestはPHPUnitの上に構築された、テストをよりシンプルに書くためのフレームワークです。そのPestが公式に推奨しているLaravelのためのプラグインpest-plugin-laravelを使って既存のテストを書き直してみました。Pestが掲げる「読みやすく理解しやすい」テストコードに、少し近づけるでしょうか。
javascriptを書かずに動的でリアクティブなアプリが作れるlivewireですが、既存のjavascriptやjQueryで行っていた事をlivewireでも実現しようとすると「はて、どうすれば良いだろうか?」と手が止まることがあります。直近でドラッグ&ドロップで並び替え可能なテーブルをlivewireで実装する機会があり調べたので忘れない内にまとめたいと思います。
今回は、composer.jsonでrequireやrequire-devにリストされるパッケージのバージョンに関して説明します。今まで気にもとめていなかった ^11.9などの意味を解明します。