Skip to main content

概要

このセクションでは、公式ドキュメントだけでは分からないLaravelの内部実装や、パッケージ開発に特化した上級トピックを扱います。ソースコードを読み解きながら、実践的な設計パターンや拡張方法を解説します。

パッケージ開発

Laravelパッケージ開発

サービスプロバイダーを核としたパッケージ開発の基礎から、設定・ビュー・マイグレーションの公開まで網羅します。

Orchestra TestbenchでLaravelパッケージをテストする

Orchestra Testbenchを使ってパッケージのテスト環境を構築し、サービスプロバイダー・ファサード・DBを検証します。

Testbench Workbenchでパッケージ開発を進める

実アプリに近い検証環境を作り、ルート・マイグレーション・サービス起動を備えた開発フローを構築します。

パッケージのバージョン互換性管理

LaravelとPHPのバージョンアップに対応するパッケージメンテナンス戦略とGitHub Actionsのテストマトリクス設定。

GeneratorCommand — カスタム make: コマンドの実装

パッケージ独自の make: コマンドをGeneratorCommandを継承して実装する方法を解説します。

パッケージ設定のマージとキャッシュ

浅いマージと再帰的な置換の違いを読み解き、公開済み設定と設定キャッシュを考慮して保守します。

パッケージのマイグレーション公開と更新

公開と直接読み込みの違い、日時変更と再公開のリスク、既存利用者へのスキーマ変更を解説します。

パッケージビューの上書きと更新

ビューの検索順序、公開済みテンプレートの互換性、Bladeキャッシュを考慮した更新手順を解説します。

パッケージのルート登録とキャッシュ

ミドルウェアと名前の分離、設定変更とルートキャッシュ再作成の関係を解説します。

パッケージのキャッシュとoptimizeへの統合

独自タスクの登録キー、除外指定、実行順序、失敗時の扱いを解説します。

パッケージの公開アセットと更新

JavaScript・CSSの配布、タグの選択範囲、上書きとComposer更新時の再公開を解説します。

パッケージ翻訳の上書きと更新

PHP翻訳の部分上書き、JSON翻訳の共有キー、公開済み翻訳を壊さない更新方法を解説します。

パッケージのサービス解決後フック

callAfterResolving()による遅延設定と解決済みサービスへの反映、冪等性の注意点を解説します。

パッケージのArtisanコマンド登録と依存解決

登録・インスタンス生成・実行の違いと、handle()への依存注入による副作用の分離を解説します。

パッケージのイベントリスナー登録とキャッシュ

明示登録と自動検出の違い、二重登録の回避、event:cacheの対象と更新時の検証を解説します。

パッケージサービスのライフサイクル設計

scopedの内部実装、singletonが保持する依存関係、長寿命ワーカーでの状態分離を解説します。

パッケージのミドルウェア登録と適用範囲

エイリアス登録と適用の分離、グループの上書き回避、キャッシュ時の検証を解説します。

パッケージのBlade拡張とコンパイルキャッシュ

独自ディレクティブと条件式の実行タイミング、更新時のキャッシュ管理を解説します。

パッケージのStorageドライバー登録と再解決

生成処理の登録、ディスクの保持と再解決、fakeとは別に必要な検証を解説します。

フレームワーク内部

Laravel 11以降のアプリケーション構造

Slim Application Skeletonの全貌と、Application::configure()からApplicationBuilderまでの内部実装を解説します。

Macroableトレイト

既存のLaravelクラスに独自メソッドを追加するMacroableトレイトの仕組みと活用パターン。

Conditionableトレイト

when()/unless()メソッドの内部実装と、流暢なAPIを設計するための活用パターン。

Illuminate\Support\Manager — ドライバーシステムの解剖

Laravel 4.0から続くドライバーシステムの核心クラス。カスタムドライバーの登録方法からMultipleInstanceManagerまで。

Pipelineパターン

Illuminate\Pipeline\Pipelineクラスの仕組みと、複数の処理ステップをチェーンで構成するパターン。

InteractsWithDataトレイト

パッケージ開発で自前クラスにデータアクセスAPIを実装するためのトレイト設計を解説します。

tap() ヘルパーと Tappable トレイト

Laravelのtap()ヘルパーとTappableトレイトの使い方と実装パターン。

PHPアトリビュート

Laravel 13で導入・強化されたPHPアトリビュートを使って、ジョブやモデルの設定を宣言的に記述する方法。

once() ヘルパーの内部実装

Once・OnceableクラスによるWeakMapキャッシュの仕組みと、EloquentのPreventsCircularRecursionへの応用。

Eloquent 深掘り

Eloquentのカスタムキャスト

CastsAttributesインターフェースを実装したカスタムキャスト。Value Objectパターン、インバウンドキャスト、Castablesも紹介。

Eloquent Observers とモデルイベント

Eloquentモデルが発火するイベントの仕組みと、Observerクラスによるイベントの一元管理。

Eloquentのスコープ

ローカルスコープとグローバルスコープの仕組み。SoftDeletingScopeなどの内部実装から実践的なユースケースまで。

Collection Deep Dive

Laravel Collectionの実装を、歴史・クラス構造・PHPDoc Generics・読み進め方の観点で解説します。

コレクションの高階メッセージ

コレクションの高階メッセージ(Higher-order Messages)の仕組みと実践的な使い方。

MCP・AI

LaravelでMCPサーバーを作る

laravel/mcpパッケージを使って本番運用できるMCPサーバーを構築する。ツール・リソース・プロンプトの実装から認証まで。

AI SDKのカスタムプロバイダーを作る

Laravel AI SDKのソースコードを読み解き、標準で提供されていないAIサービスに対応するカスタムプロバイダーを実装。

Boostのカスタムエージェントを作る

Laravel Boostの拡張アーキテクチャを深掘りし、カスタムエージェントを作成する方法を解説します。

認証・バリデーション・その他

カスタム認証ガードの実装

Guard・StatefulGuardインターフェースを実装してカスタム認証ガードを作る方法をソースコードレベルで解説。

カスタムバリデーションルール

ルールオブジェクトやクロージャでバリデーション機能を拡張する方法を内部実装まで踏み込んで解説。

レート制限のカスタマイズ

RateLimiterファサードを深掘りし、ユーザー別・プラン別・IPアドレス別のカスタムレート制限を実装。

Pestを使った高度なテスト

Expectation API・データセット・フェイク・Mockeryまで、Pestの高度な使い方を体系的に解説。
最終更新日 2026年10月18日