Anon Framework Next - A PHP backend API framework

Maintainers

Package info

github.com/YuiNijika/Anon

pkg:composer/yuinijika/anon

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

Stars: 3

Open Issues: 0

v4.0.0-alpha 2026-05-10 22:49 UTC

This package is auto-updated.

Last update: 2026-06-04 01:07:46 UTC


README

Anon Framework Next 是一个现代化的 PHP 后端 API 框架。本仓库是它的应用骨架(Skeleton)。

默认骨架刻意保持轻量,初始化时只保留少量最基础的示例路由和一个简单控制器,方便你像使用 ThinkPHP 一样,创建项目后直接开始改业务代码,而不是先清理一堆复杂 demo。

核心架构设计

框架采用了分离式架构:

  • Skeleton (本仓库):应用模板,包含控制器、模型、路由定义、中间件以及 anon.config.php / .env 等业务配置文件的存放地。
  • Core (YuiNijika/AnonCore):框架的核心逻辑引擎(容器、路由解析、ORM、JWT 等),被安装在 vendor/ 目录下。

目录结构

/
├── app/                  # 应用程序核心代码目录
│   ├── controller/       # 控制器,风格更接近 ThinkPHP
│   ├── Jobs/             # 队列任务
│   ├── Middleware/       # 自定义中间件
│   ├── Model/            # 数据模型 (ORM)
│   ├── route/            # 路由定义 (默认入口: main.php)
│   └── hook.php          # 注册系统生命周期钩子
├── run/                  # 运行时与 Web 根目录
│   ├── index.php         # 框架单一入口文件
│   └── storage/          # 本地文件存储目录
├── runtime/              # 框架生成的运行时文件 (日志、缓存等)
├── anon.config.php       # 项目主配置文件
├── .env                  # 默认环境变量文件
├── anon                  # CLI 命令行入口工具
└── composer.json         # 项目依赖配置

快速开始

1. 创建项目

composer create-project yuinijika/anon my-app
cd my-app

2. 环境与项目配置

框架推荐将结构化配置写入 anon.config.php,将密码、密钥、环境差异值保留在 .env* 中。

直接修改根目录下的 .envanon.config.php 即可。

默认骨架里的 anon.config.php 会刻意保持精简,只预置:

  • cache
  • session
  • auth

像数据库、队列、日志、更完整的 Auth 选项这类配置,不会默认全部塞进去;需要时再按文档逐步加回去即可。

框架同时支持类似 Vite 的环境文件分层加载:

  • .env
  • .env.local
  • .env.development
  • .env.production
  • .env.{APP_ENV}.local

框架启动时会优先读取 anon.config.php,未配置的项目会继续回退到 .env 中的旧环境变量,便于平滑升级。

3. 启动开发服务器

框架内置了轻量 CLI 工具,你可以直接启动本地开发服务器:

php anon dev

服务器默认监听 http://127.0.0.1:8000

默认示例

创建项目后,骨架默认只提供 5 个非常基础的示例接口:

GET  /
GET  /ping
GET  /hello/{name}
GET  /articles
POST /articles

它们分别演示了:

  • 最基础的控制器返回
  • 健康检查接口
  • 动态路由参数
  • JSON 列表输出
  • POST 请求与参数校验

例如:

curl http://127.0.0.1:8000/ping
curl "http://127.0.0.1:8000/hello/anon?from=cli"
curl -X POST http://127.0.0.1:8000/articles \
  -H "Content-Type: application/json" \
  -d "{\"title\":\"Hello\",\"content\":\"My first API\"}"

默认示例控制器在 app/controller/Index.php,默认路由在 app/route/main.php

你通常只需要直接修改这两个文件,就可以开始写自己的项目。

如果你需要更完整的开发示例,例如:

  • 新建控制器
  • 注册控制器路由
  • 静态路由
  • 动态路由

建议直接查看 vitepress/docs/guide/architecture/router.md,这些示例会统一维护在文档中,而不是继续塞回默认骨架。

推荐起步方式

如果你想像 ThinkPHP 那样快速上手,建议按下面的顺序开始:

  1. app/route/main.php
  2. app/controller/Index.php
  3. 按需调整 anon.config.php
  4. 需要数据库、认证、队列时,再逐步接入对应能力

一个最小路由示例:

use Anon\Core\Facade\Route;
use Anon\Controller\Admin\User\Index;

Route::get('/admin/users', [Index::class, 'index']);
Route::post('/admin/users', [Index::class, 'store']);

常用命令

anon 命令行工具提供了一些实用的代码生成器,帮助你快速搭建业务骨架:

# 生成配置缓存
php anon config:cache

# 清理配置缓存
php anon config:clear

# 生成路由缓存(仅支持控制器路由)
php anon route:cache

# 清理路由缓存
php anon route:clear

# 查看失败任务
php anon queue:failed

# 重试单个失败任务
php anon queue:retry --id=job-id

# 清空失败任务
php anon queue:clear-failed

# 生成单文件控制器
php anon make:controller User

# 生成目录式控制器,自动创建 Index.php
php anon make:controller User --group
php anon make:controller Admin/User --group

# 生成资源控制器模板
php anon make:controller User --resource
php anon make:controller Admin/User --group --resource

# 生成模型
php anon make:model User
php anon make:model Admin/User

# 生成中间件
php anon make:middleware CheckLogin
php anon make:middleware Admin/CheckLogin

推荐在控制器目录中使用这种更接近 ThinkPHP 的分层方式:

app/controller/User.php
app/controller/User/Index.php
app/controller/Admin/User/Index.php
app/model/User.php
app/model/Admin/User.php
app/middleware/CheckLogin.php
app/middleware/Admin/CheckLogin.php

如果你喜欢字符串控制器写法,也可以直接这样注册路由:

Route::get('/admin/users', 'Admin/User/Index@index');

如果你的控制器就是标准 CRUD,也可以直接使用:

Route::resource('/admin/users', 'Admin/User/Index');

如果你只想保留部分资源动作,也可以这样:

Route::resource('/admin/users', 'Admin/User/Index', [
    'only' => ['index', 'show', 'store'],
]);

更新动作同时支持 PUTPATCH

按需扩展

框架本身已经支持:

  • anon.config.php + .env* 分层配置
  • 配置缓存与路由缓存
  • ORM、关联与软删除
  • JWT Auth、多 Guard、双令牌、会话管理
  • Redis 队列、失败任务、重试与清理

但这些能力不再默认堆在骨架首页示例里,而是建议你在真正需要时再接入。这样初始化项目会更干净,也更接近传统 PHP 框架的使用习惯。

生产部署建议

推荐在生产环境使用 .env.production 或由部署平台注入环境变量,并在发布完成后立即构建运行时缓存:

# 1. 安装依赖
composer install --no-dev --optimize-autoloader

# 2. 生成配置缓存
php anon config:cache

# 3. 生成路由缓存
php anon route:cache

如果你更新了以下内容,建议重新生成缓存:

  • 修改了 anon.config.php
  • 修改了 .env.production 或其他生产环境变量
  • 修改了 app/route/*.php
  • 新增、删除或重命名了控制器动作

推荐发布顺序如下:

php anon config:clear
php anon route:clear
php anon config:cache
php anon route:cache

当前 route:cache 仅支持控制器路由;如果你的生产路由中仍然包含闭包,需要先改为控制器动作再进行缓存。

官方文档

详细的框架使用指南(包括配置、容器、路由、中间件、数据库、Auth、Queue 等),请查看仓库中的 vitepress/docs

许可证 (License)

本项目遵循 MIT 许可证