Merge remote-tracking branch 'origin/gh-pages' into gh-pages

This commit is contained in:
huangzhhui 2019-06-20 14:07:16 +08:00
commit 6aa54f534f
3 changed files with 13 additions and 9 deletions

View File

@ -2,5 +2,5 @@
## composer
```
composer create hyperf/hyperf-skeleton
composer create-project hyperf/hyperf-skeleton
```

View File

@ -25,7 +25,7 @@ Hyperf 使用 [Composer](https://getcomposer.org) 来管理项目的依赖,在
[hyperf-cloud/hyperf-skeleton](https://github.com/hyperf-cloud/hyperf-skeleton) 项目是我们已经为您准备好的一个骨架项目,内置了一些常用的组件及相关配置的文件及结构,是一个可以快速用于业务开发的 Web 项目基础。
执行下面的命令可以于当前所在位置创建一个 hyperf-skeleton 项目
```
composer create hyperf/hyperf-skeleton
composer create-project hyperf/hyperf-skeleton
```
## 存在兼容性的扩展

View File

@ -66,12 +66,14 @@ class RateLimitController
}
}
```
配置优先级 `默认配置 < 配置文件 < 类注解 < 方法注解`
配置优先级 `方法注解 > 类注解 > 配置文件 > 默认配置`
## 触发限流
当限流被触发时, 默认会抛出 `Hyperf\RateLimit\Exception\RateLimitException` 异常
或者配置 `limitCallback` 限流回调来处理。例如:
可以通过[异常处理](zh/exception-handler.md)或者配置 `limitCallback` 限流回调处理。
例如:
```php
<?php
@ -84,7 +86,7 @@ use Hyperf\RateLimit\Annotation\RateLimit;
/**
* @Controller(prefix="rate-limit")
* @RateLimit(limitCallback={RateLimitController, 'limitCallback'})
* @RateLimit(limitCallback={RateLimitController::class, 'limitCallback'})
*/
class RateLimitController
{
@ -97,10 +99,12 @@ class RateLimitController
return ["QPS 1, 峰值3"];
}
public function limitCallback(float $seconds, ProceedingJoinPoint $proceedingJoinPoint)
public static function limitCallback(float $seconds, ProceedingJoinPoint $proceedingJoinPoint)
{
// $seconds 下次生成Token 的间隔, 单位为秒
// $proceedingJoinPoint 此次请求执行的切入点
// 可以通过调用 `$proceedingJoinPoint->process()` 继续执行或者自行处理
return $proceedingJoinPoint->process();
}
}
```
回调方法中的 `$seconds` 参数是下次生成Token 的间隔, `$proceedingJoinPoint` 则是此次请求要执行的切入点, 可以通过调用 `$proceedingJoinPoint->process()` 继续执行或者自行处理。