外观
快速开始
Pin 是一个轻量级 Laravel API 应用开发底座。它不只提供单个类库,还带有一套应用层约定:自定义 Application、配置加载、服务提供者集合、统一 HTTP 响应、路由枚举、模型查询、认证权限和测试工具。
环境要求
来自 composer.json 的运行要求:
| 依赖 | 版本 |
|---|---|
| PHP | ^8.5 |
| Laravel Framework | ^13.0 |
| Laravel Sanctum | ^4.0 |
| Redis 扩展 | ext-redis |
| GD / OpenSSL / PDO | ext-gd、ext-openssl、ext-pdo |
开发依赖包含 Pest、PHPUnit、PHPStan、Pint、Orchestra Testbench 和 Scramble。
安装包
在业务项目中安装:
bash
composer require ipiner/pin在当前仓库开发:
bash
composer install注册服务提供者
Pin 的核心服务提供者集合定义在 Pin\Providers\PinServiceProvider::PROVIDERS。在 Laravel 应用的 bootstrap/providers.php 中展开注册:
php
<?php
return [
...Pin\Providers\PinServiceProvider::PROVIDERS,
];这会注册认证、权限、缓存、验证码、加解密、数据库、错误码、Faker、ID 生成、模型、密码、操作日志、Scramble、Token、树结构和验证等模块。
使用 Pin Application
Pin 的配置体系依赖 Pin\Application 替换 Laravel 默认 Application。它会把框架内置 config/ 与业务应用 config/ 做递归合并,并支持 config.{env}.php 环境覆盖。
在使用 Laravel 应用构建器的项目中,可将应用类切换为 Pin Application:
php
use Pin\Application;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withProviders([
...Pin\Providers\PinServiceProvider::PROVIDERS,
])
->create();如果项目只想局部使用某些类,也可以按模块单独注册服务提供者,但配置文件需要由业务项目自行提供。
发布资源
Pin 当前提供两个发布标签:
bash
php artisan vendor:publish --tag=pin-errors
php artisan vendor:publish --tag=pin-migrationspin-errors:发布框架错误页到resources/views/errors。pin-migrations:发布包内数据库迁移到database/migrations。
文档站
本仓库已添加 VitePress 文档站:
bash
pnpm install
pnpm docs:dev构建静态文档:
bash
pnpm docs:build构建输出位于 docs/.vitepress/dist,该目录已加入 .gitignore。