PCS開発チーム
laravel/framework v12.10.1
https://github.com/laravel/framework/releases/tag/v12.10.1
- ‘when’ メソッドでの value() ヘルパー導入を取り消し、元の挙動に戻した
- 12.x 系でビューの変更検出に xxh128 ハッシュを使用するよう改善
- 12.x 系の HasRelationships::relationLoaded() で関連モデルがイテラブルであることを保証
- 12.x 系の AssertableJsonString::assertJsonPath で Enum 型をサポート
laravel/framework v11.44.4
https://github.com/laravel/framework/releases/tag/v11.44.4
11.x: メールの message
テンプレートから誤った構文を削除しました。
laravel/framework v11.44.3
https://github.com/laravel/framework/releases/tag/v11.44.3
- 10.x: 接続切断検出時のエラーメッセージを改善(Debian bookworm互換性向上)
- 10.x: league/commonmark の最低バージョンを引き上げ
- 10.x: PHP 8.4 の str_getcsv 非推奨対応を 11.x からバックポート
- 10.x: 特定ルールクラス内での Validator インスタンス属性名を修正
- Illuminate\Support\EncodedHtmlString クラスを追加
- 11.x: assertOnlyJsonValidationErrors に return $this を追加
- 11.x: EncodedHtmlString が破壊的変更を起こさないよう修正
- 11.x: AboutCommand がキャッシュ済みビューのカスタムパスを正しく扱うように
- 11.x: Str::trim で全ての不可視文字を除去対象に含めるよう改善
- 11.x: テストを改善
新しいスターターキットの人気
GitHubのスターはReact版が一番多いけど
実際に使われたpackagistでのインストール数ではLivewire版が多い。
まぁそうだろうなという結果。
コミュニティスターターキットも徐々に増えてる。
ここに載ってないのもある。
https://github.com/tnylea/laravel-new
自分でもスターターキット作ろうかしばらく迷ってる。
一度作るだけなら簡単でもずっとメンテし続けるのは大変。
laravel/framework v12.10.0
https://github.com/laravel/framework/releases/tag/v12.10.0
・whenメソッドでvalue()ヘルパーを利用可能に
・Bladeの@useディレクティブを引用符なしでもテスト、グループインポートの修正も適用
・Broadcastイベントのテストカバレッジを強化
・FluentクラスにConditionableトレイトを追加
・手動設定されたリレーションでの自動読み込みを修正
・RateLimiterに型定義を追加
・一部ケースで動作しなかったグローバルオートロードリレーションを修正
・キャッシュフラッシュイベントにおけるsetTagsメソッド追加を修正
・afterCommit付きShouldBeUniqueジョブでトランザクションロールバック後に解除されないロックを修正
・AsCollectionを拡張し、アイテムをオブジェクトや任意の値にマッピング可能に
・テスト名を慣習的なスタイルに統一
・コンパイル済みビューは変更があった場合のみ更新
・Arr::dotメソッドのパフォーマンスを一部ケースで約300倍改善
・CacheBasedSessionHandler、FileSessionHandler、DatabaseSessionHandlerのテストを追加
・カスタムピボットクラス使用時の多対多デタッチ不具合を修正
・relationLoadedメソッドでネストしたリレーションをサポート
・Cache::memo()->many()が整数キーで誤った値を返すバグを修正
・Containerがクラス名からMigratorを構築できるように対応
Advanced Tip: Leverage Laravel’s service container with contextual binding to manage multiple concrete implementations of the same interface based on where they're used. This technique lets you inject different implementations into controllers, services, or jobs without changing their code, promoting decoupled, testable architecture. For example, by binding interfaces to specific classes conditionally in your service provider, you can tailor behavior for various parts of your application while still following the Dependency Inversion Principle.
laravel/framework v12.9.2
https://github.com/laravel/framework/releases/tag/v12.9.2
・12.x バージョンでは、外部アプリケーションでの「illuminate/console」使用時のバグを修正しました。
・「ubuntu-20.24」が削除されたため、SQLServer 2017 のCIを無効化しました。
laravel/framework v12.9.1
https://github.com/laravel/framework/releases/tag/v12.9.1
・Illuminate\Database\Eloquent\Collection::partition メソッドが、渡された引数のみを転送するように変更されました。
・Logger における複雑なコンテキスト操作のテストが追加されました。
・DumpCommand 内の不要な変数が削除されました。
・serve コマンドが、リクエストプール配列の分割処理に失敗する問題を修正しました。
・package-lock.json の変更時に npm run build が実行されるようになりました。
laravel/laravel v12.0.7
https://github.com/laravel/laravel/releases/tag/v12.0.7
・composer run test コマンドが追加されました。
・README内のパートナー一覧に更新がありました。
laravel/framework v12.9.0
https://github.com/laravel/framework/releases/tag/v12.9.0
・ViewErrorBagとMessageBagに型定義を追加
・Schema/Builderの共通メソッドにジェネリクスを導入(12.x)
・テストを容易にするため、処理時間を固定できるように変更
・AWS Auroraの認証情報ローテーションに対応するため、接続ロス検出処理を強化
・failedRequest()のテストメソッド名を変更(12.x)
・トランザクション失敗時に呼ばれるコールバックを追加
・モデルにwithRelationshipAutoloadingメソッドを追加(12.x)
・ミドルウェアが例外を投げた際に、HTTPクライアントのリトライを有効化(12.x)
・自動リレーション読み込み中のクロージャのシリアライズエラーを修正(12.x)
・WhereIn制約付きのUniqueバリデーションルールに関するテストを追加
・ドキュメントブロックに例外情報(@throws)を記述
・propagateRelationAutoloadCallbackToRelationメソッドのドキュメントを更新(12.x)
・Redisにおいて、オプション設定前に接続を確立するよう修正(12.x)
・翻訳用FileLoaderで、キーが見つからない場合の上書き問題を修正(12.x)
・withPivotValue使用時にpivotモデルのイベントが動作しない問題を修正(12.x)
・メモ化キャッシュドライバを導入(12.x)
・Filesystem::lastModified()メソッドのテストを追加(12.x)
・pda/pheanstalk 7に対応(12.x)
・FilesystemTestに包括的なファイルシステム操作のテストを追加(12.x)
・例外レンダラー内のviteのバージョンを更新
・assertViewHas()のエラーメッセージをより詳細に記述
・LazyCollectionのメソッドにジェネリック型の注釈を追加
・複数の環境変数を使用するProcessシーケンスのテストを追加(12.x)
・MailMessage内のcc/bcc/replyToアドレスの結合処理の問題を修正(12.x)
・Fluentにmake関数を追加(12.x)
高度なLaravelのテクニックとして、Eloquentのグローバルスコープを活用する方法があります。グローバルスコープを使うと、特定の条件(例えば、ソフトデリートの判定やユーザー所属のフィルタリングなど)を全てのクエリに自動的に適用でき、コードの重複を大幅に削減しながら、アプリケーション全体で一貫性と安全性を保つことができます。
One advanced Laravel tip is to create custom Eloquent Collections. Instead of manually processing arrays of models in controllers or services, you can encapsulate common logic directly within a custom collection class. To do this, override the newCollection method in your model to return an instance of your custom collection. Then, add domain-specific methods (like filtering active records, transforming data, etc.) to that class. This approach keeps your code DRY, makes your query logic more expressive, and centralizes common data manipulations for improved maintainability.
composer/composer 2.8.8
https://github.com/composer/composer/releases/tag/2.8.8
JSONスキーマのバージョン検証に関する問題と、32bit環境での不具合が修正されました。
composer/composer 2.8.7
https://github.com/composer/composer/releases/tag/2.8.7
・justinrainbow/json-schemaの依存バージョンを6.xに更新
・環境変数COMPOSER_MAX_PARALLEL_PROCESSを導入し、Composerが起動する並列プロセス数を制御可能に
・診断コマンド出力にzstdやbrotliの対応状況を表示
・エラーハンドラの修正により、非推奨警告の過剰出力を解消
・InstalledVersionsの重複データ出力問題を修正
・「--with ...」による制約の処理を改善し、名前が異なるパッケージに置き換えられている場合にも適用されるように変更
・IDEのコード検査でベンダーディレクトリ内に表示される非推奨警告を解消
・いくつかのJSONスキーマの完全性に関する問題を修正
・パス内に.pharを含むファイルのオートロードの問題を修正
laravel/framework v12.7.0
https://github.com/laravel/framework/releases/tag/v12.7.0
・12.x: AbstractPaginator が文字列変換時にエスケープ可能なインターフェースを実装するようになりました。
・12.x: Eloquent ビルダーに whereAttachedTo メソッドが追加されました。
・Illuminate\Support\Uri が Macroable となり、マクロの利用が可能になりました。
・12.x: Model および Collections にリソースヘルパー関数が追加されました。
・12.x: MariaDB 10.7.0 未満の環境で UUID 型に char(36) が使用されるようになりました。
・12.x: ComponentAttributeBag クラスに toArray メソッドが導入されました。