PHPackages                             cshaptx4869/thinkphp-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. cshaptx4869/thinkphp-annotation

ActiveLibrary

cshaptx4869/thinkphp-annotation
===============================

thinkphp5.1 注解插件

v0.1.1(6y ago)12694[1 issues](https://github.com/cshaptx4869/thinkphp-annotation/issues)Apache-2.0PHPPHP &gt;=5.6

Since Jan 4Pushed 6y ago1 watchersCompare

[ Source](https://github.com/cshaptx4869/thinkphp-annotation)[ Packagist](https://packagist.org/packages/cshaptx4869/thinkphp-annotation)[ RSS](/packages/cshaptx4869-thinkphp-annotation/feed)WikiDiscussions master Synced today

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

thinkphp-annotation
===================

[](#thinkphp-annotation)

前言:
---

[](#前言)

thinkphp5.1中用注解的方式实现：

- 请求数据验证
- 请求数据过滤、格式化
- 属性对象自动注入
- 自动事务

> 最新文档地址：

安装
--

[](#安装)

```
composer require cshaptx4869/thinkphp-annotation
```

配置
--

[](#配置)

`tags.php `添加行为，用于控制器注解扫描

```
'action_begin' => [
     \Fairy\ControllerAnnotationScaner::class
]
```

模型中使用属性注解的话，需要在模型中引入 \\Fairy\\ModelAnnotationScaner 的trait

```
use \Fairy\ModelAnnotationScaner;
```

添加 `system.php` 配置文件（可选）

```
return [
    'annotation' => [
        'cache' => false,// 是否开启注解读取缓存，默认false
        'writelist' => []// 注解读取白名单，默认[]
        'interceptor' => [// 注解拦截器相关配置
            'enable' => true,// 默认开启注解拦截器
            'whitelist' => []// 注解拦截器白名单，默认[]
        ],
        'validate' => [
            'callback' => function($msg) {
            	// 自定义验证错误信息后续处理
            }
        ]
    ]
]
```

> PS：默认验证器注解验证不通过会终止程序运行并返回`json`格式的验证错误信息。可通过配置 callback函数自定义后续处理。请注意，不同版本使用上会有些许差别。

支持的注解
-----

[](#支持的注解)

###### v0.1.0版：

[](#v010版)

注解名申明范围作用@Autowire属性自动注入类对象@DynamicAutowire方法声明当前方法允许属性注入的类@IgnoreAutowire方法声明当前方法忽略属性注入的类@RequestParam方法过滤、格式化请求参数@Validator方法验证器验证###### v0.1.1版：

[](#v011版)

注解名申明范围作用@RequestParam方法过滤、格式化请求参数@Validator方法验证器验证@Autowire属性自动注入类对象@Transaction方法自动事务> #### 版本差异：
>
> [](#版本差异)
>
> v0.1.1新增：
>
> **Transaction 注解**
>
> Transaction 注解根据当前方法返回值自动判断事务后续处理，如返回值等价于true就会自动commit，否则rollback。
>
> Transaction 注解需要搭配 Autowire注解使用，且不支持在控制器中使用，推荐在模型中使用。
>
> **ModelAnnotationScaner**
>
> 支持模型中使用属性注解
>
> Autowire 注解改动：
>
> v0.1.0 版本中 Autowire 注解必须写class属性，如 Autowire(class=ArticleModel::class)，而在v0.1.1版本中 Autowire 注解则没有class属性而是通过@var ArticleModel 注解来自动识别。

v0.1.0版本使用示例
------------

[](#v010版本使用示例)

`ArticleController` 控制器：

```
