Skip to content

快速开始

Pin 是一个轻量级 Laravel API 应用开发底座。它不只提供单个类库,还带有一套应用层约定:自定义 Application、配置加载、服务提供者集合、统一 HTTP 响应、路由枚举、模型查询、认证权限和测试工具。

环境要求

来自 composer.json 的运行要求:

依赖版本
PHP^8.5
Laravel Framework^13.0
Laravel Sanctum^4.0
Redis 扩展ext-redis
GD / OpenSSL / PDOext-gdext-opensslext-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-migrations
  • pin-errors:发布框架错误页到 resources/views/errors
  • pin-migrations:发布包内数据库迁移到 database/migrations

文档站

本仓库已添加 VitePress 文档站:

bash
pnpm install
pnpm docs:dev

构建静态文档:

bash
pnpm docs:build

构建输出位于 docs/.vitepress/dist,该目录已加入 .gitignore