PHPackages                             x2nx/webman-annotation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. x2nx/webman-annotation

ActiveLibrary[Framework](/categories/framework)

x2nx/webman-annotation
======================

Webman Annotation plugin - Production-ready annotation system for webman framework with security, performance and reliability

v0.0.1(5mo ago)6712MITPHPPHP &gt;=8.1

Since Dec 3Pushed 5mo agoCompare

[ Source](https://github.com/x2nx/webman-annotation)[ Packagist](https://packagist.org/packages/x2nx/webman-annotation)[ Docs](https://github.com/x2nx/webman-annotation)[ RSS](/packages/x2nx-webman-annotation/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Webman Annotation Plugin
========================

[](#webman-annotation-plugin)

一个功能完整、生产就绪的 Webman 框架注解插件，支持路由、中间件、依赖注入、定时任务、事件监听和自定义注解等功能。

[![PHP Version](https://camo.githubusercontent.com/7663c9d53dc13cedaf0660a8745a7e77d2dd711257f36aa86ebce12a0600ef42/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e312d626c75652e737667)](https://www.php.net/)[![License](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](LICENSE)[![Webman](https://camo.githubusercontent.com/8ca99049d8483fab287c440d828972b6a1d06aef7d83770cedb67876b801d475/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7765626d616e2d253345253344322e302d626c75652e737667)](https://www.workerman.net/webman)

📋 目录
----

[](#-目录)

- [功能特性](#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7)
- [安装](#%E5%AE%89%E8%A3%85)
- [快速开始](#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
- [配置说明](#%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E)
- [路由注解](#%E8%B7%AF%E7%94%B1%E6%B3%A8%E8%A7%A3)
- [中间件注解](#%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%B3%A8%E8%A7%A3)
- [依赖注入](#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5)
- [Bean 管理](#bean-%E7%AE%A1%E7%90%86)
- [定时任务](#%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1)
- [事件监听](#%E4%BA%8B%E4%BB%B6%E7%9B%91%E5%90%AC)
- [自定义注解](#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B3%A8%E8%A7%A3)
- [性能优化](#%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96)
- [高级功能](#%E9%AB%98%E7%BA%A7%E5%8A%9F%E8%83%BD)
- [常见问题](#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
- [API 参考](#api-%E5%8F%82%E8%80%83)
- [最佳实践](#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)

✨ 功能特性
------

[](#-功能特性)

### 核心功能

[](#核心功能)

- ✅ **路由注解** - 支持 8 种 HTTP 方法注解（GET, POST, PUT, PATCH, DELETE, OPTIONS, TRACE, HEAD）
- ✅ **中间件注解** - 支持类级别和方法级别的中间件配置
- ✅ **依赖注入** - 支持 `#[Inject]` 和 `#[Value]` 注解自动注入
- ✅ **Bean 管理** - 使用 `#[Bean]` 注解管理单例对象
- ✅ **定时任务** - 使用 `#[Cron]` 注解定义定时任务，支持分布式锁
- ✅ **事件监听** - 使用 `#[Event]` 注解注册事件监听器
- ✅ **自定义注解** - 支持用户自定义注解和处理器

### 高级特性

[](#高级特性)

- ✅ **循环依赖自动处理** - 自动检测并处理循环依赖，用户无感
- ✅ **懒加载支持** - `#[Inject]` 支持懒加载，延迟实例化
- ✅ **注解白名单/黑名单** - 只解析已实现和配置的注解，提高性能
- ✅ **性能优化** - 静态缓存、扫描优化，减少反射开销
- ✅ **多进程安全** - 定时任务支持分布式锁，确保多进程环境下不重复执行
- ✅ **程序内调用** - 支持在代码中手动执行自定义注解

🚀 安装
----

[](#-安装)

### 使用 Composer 安装

[](#使用-composer-安装)

```
composer require x2nx/webman-annotation
```

### 系统要求

[](#系统要求)

- PHP &gt;= 8.1
- Webman Framework &gt;= 2.0
- Workerman Crontab &gt;= 1.0

### 可选依赖

[](#可选依赖)

- `webman/log` &gt;= 2.0 - 用于日志记录
- `webman/event` &gt;= 1.0 - 用于事件监听功能
- `webman/channel` &gt;= 1.0 - 用于定时任务动态注册
- `webman/cache` &gt;= 2.0 - 用于缓存和分布式锁（已包含在 require 中）

🎯 快速开始
------

[](#-快速开始)

### 1. 安装插件

[](#1-安装插件)

```
composer require x2nx/webman-annotation
```

### 2. 配置文件

[](#2-配置文件)

安装后，配置文件会自动复制到 `config/plugin/x2nx/webman-annotation/` 目录。

### 3. 创建第一个注解路由

[](#3-创建第一个注解路由)

```
