Twinkle
Xdebug Now Supports PHP 8.5
Other packages have also added support, so we can now switch to 8.5.
Version constraints are unnecessary for regular Composer packages, except for those like Xdebug where version updates have significant impact.
Just specify ^8.2 and add constraints only when you find it doesn't work with a new version under development.
If the compatibility work only involves modifying composer.json, the constraint is meaningless.
XdebugがPHP8.5対応
その他のパッケージも対応したので8.5に切り替えていける。
Xdebugみたいなバージョンアップの影響が大きいものならともかく普通のcomposerパッケージにバージョン制限は不要。
^8.2で指定しておいて開発中の新バージョンでは動かないと分かった段階で制限すればいい。
対応作業もcomposer.jsonの修正しかしてないなら意味のない制限。
livewire/livewire v3.7.1
https://github.com/livewire/livewire/releases/tag/v3.7.1
変更内容
- morphマーカーの修正
- PHP 8.5サポートの追加
- Alpine v3.15.2へのアップデート
No Participants in the Advent Calendar
I glanced at the Laravel calendar and there's no one. In the past, all slots would fill up and even a second calendar would be created.
https://qiita.com/advent-calendar/2025/laravel
Other topics besides Laravel aren't gathering many participants either, so this confirms that Qiita itself is in decline.
Companies that only see it as a promotional platform came in and drove away the original users, and it's been several years in that state.
Such a bizarre sight where participants only gather in these sponsor calendars and company calendars.
https://qiita.com/advent-calendar/2025/categories/sponsor
https://qiita.com/advent-calendar/2025/ranking/feedbacks/categories/company
I've rarely seen a case where people who can run blogs on their own domains have left to this extent, despite having bothered to write articles on someone else's service.
I used to participate in various calendars myself, but I deleted my account, so there are gaps in the calendars.
Meanwhile
Laravel was running an official Advent Calendar project.
https://laravel.com/advent
Advent Calendarの参加者がいない
ふとLaravelのカレンダー見たらいない。昔は全枠埋まって2つ目まで行ったりしてたのに。
https://qiita.com/advent-calendar/2025/laravel
Laravel以外もそんなに集まってないのでこれはやっぱりQiita自体が衰退している。
宣伝の場としか思ってない企業がやってきて元いた人たちを追い出した状態になって数年経過してる。
こういうスポンサーカレンダーや企業カレンダーにだけ集まってる異様な光景。
https://qiita.com/advent-calendar/2025/categories/sponsor
https://qiita.com/advent-calendar/2025/ranking/feedbacks/categories/company
独自ドメインでブログ運営できる人たちがわざわざ他所のサービスに記事を書いてたのにここまで離れた事例はあまり見たことない。
自分も昔は色々参加してたけどアカウント消したのでカレンダーが穴になってる。
一方その頃
Laravelでは公式でAdvent Calendar企画をやっていた。
https://laravel.com/advent
laravel/framework v12.41.0
https://github.com/laravel/framework/releases/tag/v12.41.0
Laravel 12.x リリースノート要約
新機能
- HTTPクライアントのレスポンスに
throwUnless()メソッドを追加 FluentPromiseを導入し、Poolでのチェーン処理を改善lazyオブジェクトとproxyオブジェクトのサポートヘルパーを追加- reloadコマンドを追加し、サービス登録機能を実装
milliseconds、weeks、monthsの期間ヘルパーを追加- TrimStringsミドルウェアにワイルドカードパターンのサポートを追加
- JsonSchemaに依存関係を追加
バグ修正
UPDATED_AT = null時の非推奨エラーを修正- プレフィックスに
-を含むRedisタグ付きキャッシュのフラッシュ問題を修正 - nullable morphsを使用した
hasMorph/whereDoesntHaveMorphのORグループ化を修正 - マルチバイト対応のため
substrReplaceを修正 Arr::firstがArrayObjectとAsArrayObject値で動作するよう修正cache:clearコマンドの失敗時の終了コードを修正
改善
PendingRequest@send()のインデントを削減- PendingRequestのHTTPメソッドがpromiseを返せるように改善
- ジェネレータ使用時のストリーミングレスポンスでアクティブなバッファのみをフラッシュ
- 静的解析エラーを修正
- キャッシュとキャッシュロックのタイムアウトを最適化
- カスタムジョブ識別に
displayName()を使用 - イベントディスパッチャのコメント文法を修正
- メールテンプレートを刷新
- イベント型定義を改善
- キューの一時停止/再起動チェックを無視できる機能を追加
Laravelデータベースマイグレーション技術
スキーマ変更時のダウンタイム回避テクニック
Laravelのafter()メソッドを使用した段階的なカラム追加は、本番環境でよく発生する問題を解決します。
一般的な問題
本番環境で新しいカラムを追加する際、既存のレコードに対してNOT NULL制約を設定すると、データベースエラーが発生することがあります。
解決方法
// マイグレーション 1: まずNULL許容で追加
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone_number')
->nullable()
->after('email');
});
}
// マイグレーション 2: デフォルト値を設定
public function up()
{
DB::table('users')
->whereNull('phone_number')
->update(['phone_number' => '未設定']);
}
// マイグレーション 3: NOT NULL制約を追加
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone_number')
->nullable(false)
->change();
});
}
メリット
- ダウンタイムなし: アプリケーションを停止せずにスキーマを変更できます
- データ整合性: 既存データへの影響を最小限に抑えます
- ロールバック可能: 各段階で問題が発生した場合、安全に戻せます
この技術により、大規模なデータベースでも安全にスキーマ変更が可能になります。
laravel/framework v11.47.0
https://github.com/laravel/framework/releases/tag/v11.47.0
JsonSchema Contract を 11.x ブランチにバックポートしました。
--promptモードでもMCPサーバー使えるようになったので結局全部ClaudeデスクトップアプリからCopilot CLIでの作業に変更。
毎日同じ作業なら手順をまとめたカスタムエージェントを作ってコピペするだけ。
copilot --agent=*** -p "..." --allow-all-tools
laravel/boost v1.8.3
https://github.com/laravel/boost/releases/tag/v1.8.3
変更内容
- FluxUIコンポーネントリストを更新
新規コントリビューター
- 初めての貢献がありました
laravel/framework v12.40.2
https://github.com/laravel/framework/releases/tag/v12.40.2
Laravel 12.x リリースノート要約
- 型キャストの最適化
- 欠落属性違反の呼び出し可能な型ヒントの改善
- 破棄属性違反の呼び出し可能な型ヒントの改善
- PostgreSQLの全文検索でnoモードのサポートを追加
- RedisStoreのscan()結果でブール値の失敗に対するガードを追加
- バッチチェーン後のCallQueuedClosureのdisplayNameを修正
- スケジュールタスクでLaravelコンテキストを渡す機能を追加
- テストの改善
- Eloquent Builder: HigherOrderBuilderProxyフィールドの補完機能を追加
- フォールバックルートを返すのではなくルートマッチングを継続するように修正
- 指定秒数だけキューを一時停止する機能を追加
- JSONスキーマコントラクトの追加
laravel/framework v12.40.1
https://github.com/laravel/framework/releases/tag/v12.40.1
- カラムの即座追加のサポートを追加
laravel/framework v12.40.0
https://github.com/laravel/framework/releases/tag/v12.40.0
Laravel 12.x リリースノート要約
新機能:
- スケジュールタスクに特定の日付を指定できる
daysOfMonth()メソッドを追加 - アップロードファイルの文字エンコーディングを検証する
encodingバリデーションルールを追加 Request::fluent()メソッドにデフォルトパラメータのサポートを追加- キュー機能に一時停止/再開機能を追加
- Google Antigravity IDEのサポートを追加
改善:
Str::replace()の戻り値の型を改善CachedStateプロパティをnull許容に変更QueriesRelationshipsの型ヒントを改善- 遅延ロード違反時のコールバック型ヒントを改善
- ルーティング関連のパフォーマンス最適化
Collection::sliding()メソッドにパラメータ検証を追加pathメソッドの戻り値の型を常に非null文字列に更新
バグ修正:
- PHP 8.5の非推奨機能への対応
- Redis Clusterでの
MemoizedStoreの問題を修正 - Redis Clusterでの
RedisTaggedCache関連の複数の問題を修正 - クローンされたメール内の埋め込み画像のContent-IDの不整合を修正
RateLimiterの残数が負の値にならないよう修正RequestException@report()がfalseを返すよう更新- Acceptヘッダー変更時のキャッシュ無効化を修正
- 数値キーと空のプレフィックスでの
MemoizedStore::manyの誤った結果を修正 - 複数の不安定なテストケースを修正
laravel/framework v11.46.2
https://github.com/laravel/framework/releases/tag/v11.46.2
リリースノート要約
- 同期キューでネストされたバッチが失敗した際の、チェーンキャッチの重複を回避
- Symfony 7.4 のサポートを追加
- Symfony 7.4 における
Request::getAcceptableContentTypes()の変更に対応
copilot-cli 0.0.363
--prompt付けるとMCPツールを使ってなかったけど今まで対応してないだけだった。
https://github.com/github/copilot-cli/releases/tag/v0.0.363
Claude Opus 4.5にも対応。安い。プレミアムリクエストがOpus4.1は10だったのがOpus4.5は3。今の使用量なら全部Opus4.5にしても大丈夫そう。
https://github.blog/changelog/2025-11-24-claude-opus-4-5-is-in-public-preview-for-github-copilot/
When using --prompt, it wasn't using MCP tools, but it turns out it just wasn't supported until now.
Now supports Claude Opus 4.5 too. It's cheaper. Premium requests were 10 for Opus 4.1, but only 3 for Opus 4.5. At my current usage level, it looks like I could switch everything to Opus 4.5 without any issues.