laravel-packages について
Laravelパッケージ開発者向けに、再利用コードをパッケージ化する判断基準と基本構成を説明するガイドです。よく使われる依存パッケージと、用途に応じて選ぶパッケージを紹介します。
主な機能
- 01パッケージ抽出の基準
- 02パッケージのディレクトリ構成
- 03セマンティックバージョニングと個別テスト
- 04よく使うSpatieパッケージ
- 05任意で導入するLaravelパッケージ
活用シーン
- 01共有コードをパッケージ化するか評価する
- 02Laravelパッケージの構成を整える
- 03DTO、状態機械、クエリ関連の依存を選ぶ
- 04必要に応じて認証やテナント機能を追加する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ leeovery/ agentic-skills --skill laravel-packagesインストール後、Claude Code で/laravel-packagesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ExampleAction.phpExampleBaseData.phpExampleServiceProvider.phppackage-extraction.md詳細
Laravel パッケージ
パッケージ開発:プロジェクト間で再利用できるパターンを抽出します。
関連ガイド:
- package-extraction.md - コードをパッケージに抽出する
- DTOs - Spatie Laravel Data の使用
- Models - Spatie Model States と Query Builder の使用
抽出するタイミング
次の場合はパッケージに抽出します:
- 3つ以上のプロジェクトで使用されているパターン
- コードが安定しており、十分にテストされている
- パターンに明確な境界がある
- メンテナンスコストに見合う価値がある
→ 抽出ガイド全文:package-extraction.md
パッケージ構成
my-package/
├── src/
│ ├── PackageServiceProvider.php
│ ├── Actions/
│ ├── DTOs/
│ └── ...
├── tests/
├── composer.json
└── README.md
セマンティックバージョニングを使用します。パッケージを個別にテストします。明確に文書化します。
コアパッケージ(常時)
Spatie Laravel Data
composer require spatie/laravel-data
- キャスト、バリデーション、トランスフォーマーに対応した DTO
- テストファクトリーをサポート
Spatie Model States
composer require spatie/laravel-model-states
- ステートマシンパターン
- 専用クラスによる状態遷移
Spatie Query Builder
composer require spatie/laravel-query-builder
- クエリ文字列を使ったフィルター、ソート、リレーションの読み込み
- API に適したクエリ処理
Saloon
composer require saloonphp/saloon saloonphp/laravel-plugin
- 洗練された API クライアントビルダー
- 外部サービスとの連携をテスト可能
Pest
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
- 表現力豊かなテストフレームワーク
- アーキテクチャテスト
オプションのパッケージ
Laravel Sanctum
composer require laravel/sanctum
用途: API 認証が必要な場合
Stancl Tenancy
composer require stancl/tenancy
用途: マルチテナントアプリケーション
Spatie Settings
composer require spatie/laravel-settings
用途: アプリケーションレベルの設定が必要な場合
インストールコマンド
一括インストール
composer require \
spatie/laravel-data \
spatie/laravel-model-states \
spatie/laravel-query-builder \
saloonphp/saloon \
saloonphp/laravel-plugin
composer require \
pestphp/pest \
pestphp/pest-plugin-laravel \
--dev
./vendor/bin/pest --init
最小限のインストール
composer require spatie/laravel-data
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
./vendor/bin/pest --init
コメント
Markdown 対応