laravel-packages

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Laravel Packages

Laravel 包开发

Package development: extracting reusable patterns for use across projects.
Related guides:
  • package-extraction.md - Extracting code into packages
  • DTOs - Using Spatie Laravel Data
  • Models - Using Spatie Model States and Query Builder
包开发:提取可复用模式以跨多个项目使用。
相关指南:
  • package-extraction.md - 将代码提取为包
  • DTOs - 使用 Spatie Laravel Data
  • Models - 使用 Spatie Model States 和 Query Builder

When to Extract

何时提取

Extract to package when:
  1. Pattern used in 3+ projects
  2. Code is stable and well-tested
  3. Pattern has clear boundaries
  4. Maintenance cost justified
→ Complete extraction guide: package-extraction.md
满足以下条件时,将代码提取为包:
  1. 该模式在3个及以上项目中使用
  2. 代码稳定且经过充分测试
  3. 模式具有清晰的边界
  4. 维护成本合理
→ 完整提取指南:package-extraction.md

Package Structure

包结构

my-package/
├── src/
│   ├── PackageServiceProvider.php
│   ├── Actions/
│   ├── DTOs/
│   └── ...
├── tests/
├── composer.json
└── README.md
Use semantic versioning. Test packages independently. Document clearly.
my-package/
├── src/
│   ├── PackageServiceProvider.php
│   ├── Actions/
│   ├── DTOs/
│   └── ...
├── tests/
├── composer.json
└── README.md
使用语义化版本控制。独立测试包。清晰编写文档。

Core Packages (Always)

核心包(必选)

Spatie Laravel Data

Spatie Laravel Data

bash
composer require spatie/laravel-data
  • DTOs with casting, validation, transformers
  • Test factory support
bash
composer require spatie/laravel-data
  • 带有类型转换、验证和转换器的DTOs
  • 支持测试工厂

Spatie Model States

Spatie Model States

bash
composer require spatie/laravel-model-states
  • State machine pattern
  • State transitions with dedicated classes
bash
composer require spatie/laravel-model-states
  • 状态机模式
  • 通过专用类实现状态转换

Spatie Query Builder

Spatie Query Builder

bash
composer require spatie/laravel-query-builder
  • Filter, sort, include relations via query strings
  • API-friendly querying
bash
composer require spatie/laravel-query-builder
  • 通过查询字符串实现过滤、排序、关联包含
  • 适用于API的查询方式

Saloon

Saloon

bash
composer require saloonphp/saloon saloonphp/laravel-plugin
  • Elegant API client builder
  • Testable external service integrations
bash
composer require saloonphp/saloon saloonphp/laravel-plugin
  • 优雅的API客户端构建工具
  • 可测试的外部服务集成

Pest

Pest

bash
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
  • Expressive testing framework
  • Architecture tests
bash
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
  • 表现力强的测试框架
  • 架构测试支持

Optional Packages

可选包

Laravel Sanctum

Laravel Sanctum

bash
composer require laravel/sanctum
When: API authentication needed
bash
composer require laravel/sanctum
适用场景: 需要API认证时

Stancl Tenancy

Stancl Tenancy

bash
composer require stancl/tenancy
When: Multi-tenant application
bash
composer require stancl/tenancy
适用场景: 多租户应用

Spatie Settings

Spatie Settings

bash
composer require spatie/laravel-settings
When: Application-level settings needed
bash
composer require spatie/laravel-settings
适用场景: 需要应用级设置时

Installation Commands

安装命令

Full Install

完整安装

bash
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
bash
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

Minimal Install

最小安装

bash
composer require spatie/laravel-data
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
./vendor/bin/pest --init
bash
composer require spatie/laravel-data
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
./vendor/bin/pest --init