PCS開発チーム
laravel/framework v11.5.0
https://github.com/laravel/framework/releases/tag/v11.5.0
以下は、Laravelのリリースノートの要約です:
- Laravel 11.xでは、
make:trait
とmake:interface
コマンドに名前空間が追加されました。 - URLをクエリパラメータと共に生成する機能が追加されました。
- 匿名ブロードキャスティングが導入されました。
- カーソルページネーションを使用する際のバインディング順序の問題が修正されました。
- レートリミッタークラスにデクリメントメソッドが追加されました。
- モデルのレプリケーション時に
laravel_through_key
を除外する修正が行われました。 - 静的ルールメソッドにenum型が追加されました。
- ハッシュ化されたキャストを使用する際の他のハッシュ実装のサポートが修正されました。
-
whereIn
ルート制約でのenumのサポートが追加されました。 - Bladeのパフォーマンスが向上しました。
- データベースのカラム名を変更する際の問題が修正されました。
-
GenericUser
がハードコードされたカラム名の代わりにgetAuthPasswordName
を使用するように変更されました。
これらの変更は、Laravelの機能拡張とパフォーマンス向上に寄与しています。
では、Laravel公式ドキュメントの「ルーティング」について説明します。
Laravelにおけるルーティングは、アプリケーションのURLとその処理を結びつける役割を持っています。ユーザーがブラウザで特定のURLにアクセスすると、Laravelのルート定義に基づいて適切なコントローラとメソッドが呼び出され、その結果がユーザーに返されます。
ルーティングの設定は、通常、routes
ディレクトリ内のファイルに記述されます。例えば、ウェブアプリケーションのルーティングはroutes/web.php
に設定され、APIのルーティングはroutes/api.php
に設定されます。
基本的なルートの記述方法は以下のようになります:
Route::get('foo', function () {
return 'Hello World';
});
このコードは、ユーザーがfoo
というURLにアクセスした時に「Hello World」を表示するというシンプルなルート定義です。get
メソッドはHTTPのGETリクエストを示し、第一引数のfoo
はURLのパス、第二引数のクロージャーはそのURLにアクセスされたときに実行される処理を記述します。
Laravelでは他にもさまざまなHTTPメソッド(POST, PUT, DELETE など)や、パラメータを含む複雑なルーティング、ミドルウェアを使用したルートの拡張など、多岐にわたるルーティング設定が可能です。これにより、柔軟かつ強力なウェブアプリケーション開発をサポートしています。
ルーティングはLaravel開発の基本的な部分であり、上手く設計することでアプリケーションの保守性や拡張性が向上します。
Ubuntuへのnode.jsのインストール方法がまた変わっている
ローカルでは頻繁にインストールするわけではないから気付かない。
nodeのバージョンアップが必要になってインストールする時は常にここを確認。
https://github.com/nodesource/distributions
laravel/framework v11.4.0
https://github.com/laravel/framework/releases/tag/v11.4.0
Laravelの最新リリースノートの要約は以下の通りです:
- APCキャッシュ関連の古い
apc_*
関数が削除されました。 - LivewireのWire Booleanスタイルディレクティブが使用可能になりました。
- 新たに
Exceptions
ファサードが導入されました。 -
afterQuery
フックが追加され、SQL Serverを使用時のテスト不具合が修正されました。 - 計算列が誤ったテーブルにマッピングされる問題が修正されました。
- 文字列タイトルのテストが改善されました。
- データベース接続を確認する前に適用する修正が行われました。
-
orderByRaw()
をcursorPaginate()
の前に使用する際のエラーが修正されました。 -
RequiredIfDeclined
バリデーションルールが追加されました。 -
mapInto
コレクションメソッドでenumのサポートが追加されました。 - 数値キーを使用する際のプロンプトのフォールバック戻り値の問題が修正されました。
-
Enum
ルートバインディングでint
バックドenumのサポートが追加されました。 - キャッシュリポジトリのイベントを無効にする設定が追加されました。
- ジョブの表示名設定がスケジュールによって尊重されるようになりました。
- コメントのタイポ修正、ドキュメントブロックの修正が行われました。
- Httpメソッドに
@throws ConnectionException
タグが追加され、IDEサポートが向上しました。 - テスト用に
textarea
プロンプトのフォールバックとアサーションテストが追加されました。 -
LazyCollection
にthrottle
メソッドが追加されました。 -
SyncQueue
でafter_commit
設定を考慮するようになりました。 - コンテキストヘルパーが常に
$key
値を要求する問題が修正されました。 -
expectsChoice
アサーションでmultiselect
プロンプトがオプショナルになる問題が修正されました。
これらの変更は、Laravelの機能強化とバグ修正に寄与しています。
laravel/framework v10.48.8
https://github.com/laravel/framework/releases/tag/v10.48.8
-
orderByRaw()
を使用後にcursorPaginate()
を使用する際のエラーを修正しました。(https://github.com/laravel/framework/pull/51023) - データベース層の修正が行われました。(https://github.com/laravel/framework/pull/49787)
bootstrapからtailwindへ
大量のLaravel11への更新作業が落ち着いたので次はcssにbootstrap使ってるプロジェクトのtailwind化。
bootstrapってことはLaravel7以前に作られている。Laravel11までの更新はずっとしてるけどcssはそのままだった。
cssの変更は大変なので基本的には避けたほうがいい。
今回作業するのも1日で終わる程度の小規模プロジェクトだから可能。
- breezeは使わないけどbreezeから使えそうなファイルをコピー。
- @extends()を使った昔のレイアウトからBladeコンポーネントのレイアウトに変更。
- すべてのhtmlを書き換える。
Use Route Model Binding to automatically resolve Eloquent models in your routes. This simplifies retrieving records and enhances code readability. For instance, instead of manually fetching a user in your controller like User::findOrFail($id)
, simply type-hint the model in the route's method, and Laravel automatically injects the corresponding instance.
// In your web.php or api.php
Route::get('/user/{user}', function (App\Models\User $user) {
return $user;
});
This approach automatically handles the model lookup and 404 response if the item is not found, making your controllers cleaner and more focused on business logic.
Laravel11への更新完了
関わってるところ全部で終わった。
なるべく減らしたり効率化してるけどそれでもまだ多い。
スリム化は
- 歴史が浅くて小規模ならさっとスリム化しておく。
- スリム化するのが大変そうならしない。
laravel/jetstream v5.0.4
https://github.com/laravel/jetstream/releases/tag/v5.0.4
このリリースノートは、Laravel Jetstreamに関連する変更を示しています。具体的には、@taylorotwell による「[5.x] Install API optionally」というプルリクエスト(https://github.com/laravel/jetstream/pull/1473)が取り消されたことを示しています。つまり、APIをオプションとしてインストールする機能が一時的に導入された後、何らかの理由でこの変更が元に戻されたことを意味します。
laravel/framework v11.3.1
https://github.com/laravel/framework/releases/tag/v11.3.1
-
displayName()
によって設定されたジョブの名前がスケジュールによって尊重されるようになりました。(@SCIFによる貢献) -
Testing\PendingCommand.php
にConditionable
トレイトが追加されました。(@tobz-nzによる貢献) -
route:list
を複数の列/要因でコンマを使用してソートできるようになりました。(@fredbradleyによる貢献) -
BelongsToMany
にeachById
とchunkByIdDesc
が追加されました。(@lonnylotによる貢献)
laravel/framework v10.48.7
https://github.com/laravel/framework/releases/tag/v10.48.7
このリリースノートは、クエリビルダーのメソッドに関するさらなる修正が行われたことを示しています。これらの修正は、@taylorotwellによって実施され、GitHubのコミット(95ef230339b15321493a08327f250c0760c95376)で確認できます。
laravel/framework v10.48.6
https://github.com/laravel/framework/releases/tag/v10.48.6
Laravelのバージョン10.xにおいて、BelongsToMany
関連に eachById
と chunkByIdDesc
が追加されました。この変更は、GitHub上の https://github.com/laravel/framework/pull/50991 で@lonnylotによって行われました。
laravel/jetstream v5.0.3
https://github.com/laravel/jetstream/releases/tag/v5.0.3
- Livewireコンポーネントでの「@return void」を使用した不正確なアノテーションを修正しました。この修正は@coreymcmahonによって行われ、https://github.com/laravel/jetstream/pull/1467 で確認できます。
- APIをオプションでインストールする機能が5.xバージョンに追加されました。この機能は@hafezdivandariによって提供され、https://github.com/laravel/jetstream/pull/1470 で確認できます。
laravel/laravel v11.0.6
https://github.com/laravel/laravel/releases/tag/v11.0.6
- @szepeviktorによるPHPUnitの制約を修正しました。詳細は https://github.com/laravel/laravel/pull/6389 を参照してください。
- @u01jmg3により、欠けていたroundrobinトランスポートドライバーの設定が追加されました。詳細は https://github.com/laravel/laravel/pull/6392 を参照してください。
laravel/framework v11.3.0
https://github.com/laravel/framework/releases/tag/v11.3.0
以下は、Laravelのリリースノートの要約です:
- Laravel 10.xでは、キューワーカーにおけるRedis接続エラーの報告の洪水を防ぐ改善が行われました。
- Laravel 11.xでは、エラーレスポンスがキャッシュされないようにSetCacheHeadersを最適化し、セッションに
hasAny
メソッドを追加しました。 - ThrottlesExceptionsミドルウェアでスロットルされた例外を報告するオプションが追加され、DeleteWhenMissingModels属性が導入されました。
- TrimStringsの
$except
をカスタマイズできるようになり、Contextにpullメソッドが追加されました。 - MariaDbGrammarから冗長なコードが削除され、PHP 8.4の非推奨に対応するために明示的なnullableパラメータ宣言が追加されました。
- キャッシュストアにセッターが追加され、Laravel 10.xではhasTableに
withSize
オプションがオプショナルで追加されました。 - artisanコマンドで欠けている配列引数のプロンプトが修正され、Eloquentにstrict-mode安全な
hasAttribute
メソッドが追加されました。 -
retry
関数がExceptionの代わりに"Throwable"をキャッチするようになり、NotificationFakeにserializeAndRestore()
が追加されました。 - HttpClientのリトライロジックでConnectionExceptionを処理する際のクラッシュを防ぐ改善が行われました。
- 不明なパラメータの削除、PHPDocのタイポ修正、dockblockの修正が行われました。
- データベースロックで時間を偽装できるようになり、
Http::createPendingRequest()
メソッドが導入されました。 - いくつかのdoc blocksに
@throws
が追加され、PHP_MAXPATHLENのチェックがビューのファイル存在チェックに対して修正されました。 - BelongsToMany関係からスコープを削除できるようになり、名前付きレートリミッターとモデルプロパティが存在しない場合に例外を投げるようになりました。
これらの変更は、Laravelの機能強化、バグ修正、および最適化を目的としています。