ウェブからバックグラウンドでプログラムを実行
ウェブから時間がかかる作業、例えばアップロードした画像の整形などを行うときは、ジョブを作成してキュー使って非同期で実行するのが通常。しかし、Laravel 12.xからジョブをキューを使わずに即バックグラウンドで処理することが可能となりました。今回はその紹介です。
ウェブから時間がかかる作業、例えばアップロードした画像の整形などを行うときは、ジョブを作成してキュー使って非同期で実行するのが通常。しかし、Laravel 12.xからジョブをキューを使わずに即バックグラウンドで処理することが可能となりました。今回はその紹介です。
Laravelでは、カスタムに作成したミドルウェアをいろいろな場所で装着することができとてもフレキシブルです。前回ではグローバルやルートで装着しました。今回はLaravel 11.xバージョンから追加されたコントローラでのmiddlewareメソッドで装着してみます。
開発に関わるタスクとして手動で実行するコマンドは日に日に増える一方です。Laravelのシンプルなプロジェクトでも、コード作成後にはpint(コード自動整形ツール)、PHPStan(静的解析ツール)、そしてpest(テスト)を必ず実行します。また、ブラウザで動作チェックするために
たいていのプロジェクトで扱うデータベースは1つですが、これが2つあるいは3つのデータベースにアクセスするとなったら、どう対応するのでしょう?というのが今回のテーマです。
アプリで使用しているデータベースの整合性を保つために、トランザクションのデータベース関数があります。Laravelでは、現時点で2通りの方法があります。Laravelのバージョン12.32.0において、DB::afterRollBackが登場して、どちらとも機能的に同等になりました。
先月からClaude Codeを使い始めました。コンソールでの対話形式に関わらずその利便さと技術の進化に驚嘆して、さらに最近のLaravel Boostの登場で、LaravelのエコシステムにおいてMCPサーバーの開発対応がすでになされていることにさらに驚嘆。MCPサーバーは、ClaudeのようなAIエージェントに道具(ツール)を提供するインターフェースです。と言っても、具体的な例がないとわかりづらいので、早速MCPサーバーを作成してみることにします。
前回のselect2のドロップダウンはjquery依存であったけれど、似たような機能のTom Selectはバニラjsでjqueryの依存がまったくないパッケージです。早速viteでビルドします。
昔のjQuery時代においてjquery-uiとともに有名となったのはselect2のウィジットです。オプションがたくさんあるドロップダウンでの選択や複数の値を選択を必要とされるときに非常に便利なもので、今でもその優れたUIは貴重です。今回はこれをviteでビルドします。
前回ではviteでのjquery-uiパッケージ対応を説明しましたが、今度はjqueryをまったく使わない日付選択とリスト並び替えのウィジットの対応とします。かと言って、javascript(バニラJS?)でそれらのUIウィジットをスクラッチから作成するわけではありません。jquery-uiに取り替わるjqueryを必要としないパッケージを探します。
webpackベースのLaravel MixからViteへの移行の第2弾ですが、今回は私のお客さんのプロジェクトでも使用されているjquery-uiをViteで対応の話です。