mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-12-04 20:58:13 +08:00
Merge remote-tracking branch 'origin/gh-pages' into gh-pages
This commit is contained in:
commit
6aa54f534f
@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
## composer
|
## composer
|
||||||
```
|
```
|
||||||
composer create hyperf/hyperf-skeleton
|
composer create-project hyperf/hyperf-skeleton
|
||||||
```
|
```
|
@ -25,7 +25,7 @@ Hyperf 使用 [Composer](https://getcomposer.org) 来管理项目的依赖,在
|
|||||||
[hyperf-cloud/hyperf-skeleton](https://github.com/hyperf-cloud/hyperf-skeleton) 项目是我们已经为您准备好的一个骨架项目,内置了一些常用的组件及相关配置的文件及结构,是一个可以快速用于业务开发的 Web 项目基础。
|
[hyperf-cloud/hyperf-skeleton](https://github.com/hyperf-cloud/hyperf-skeleton) 项目是我们已经为您准备好的一个骨架项目,内置了一些常用的组件及相关配置的文件及结构,是一个可以快速用于业务开发的 Web 项目基础。
|
||||||
执行下面的命令可以于当前所在位置创建一个 hyperf-skeleton 项目
|
执行下面的命令可以于当前所在位置创建一个 hyperf-skeleton 项目
|
||||||
```
|
```
|
||||||
composer create hyperf/hyperf-skeleton
|
composer create-project hyperf/hyperf-skeleton
|
||||||
```
|
```
|
||||||
|
|
||||||
## 存在兼容性的扩展
|
## 存在兼容性的扩展
|
||||||
|
@ -66,12 +66,14 @@ class RateLimitController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
配置优先级 `默认配置 < 配置文件 < 类注解 < 方法注解`
|
配置优先级 `方法注解 > 类注解 > 配置文件 > 默认配置`
|
||||||
|
|
||||||
## 触发限流
|
## 触发限流
|
||||||
当限流被触发时, 默认会抛出 `Hyperf\RateLimit\Exception\RateLimitException` 异常
|
当限流被触发时, 默认会抛出 `Hyperf\RateLimit\Exception\RateLimitException` 异常
|
||||||
|
|
||||||
或者配置 `limitCallback` 限流回调来处理。例如:
|
可以通过[异常处理](zh/exception-handler.md)或者配置 `limitCallback` 限流回调处理。
|
||||||
|
|
||||||
|
例如:
|
||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
@ -84,7 +86,7 @@ use Hyperf\RateLimit\Annotation\RateLimit;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @Controller(prefix="rate-limit")
|
* @Controller(prefix="rate-limit")
|
||||||
* @RateLimit(limitCallback={RateLimitController, 'limitCallback'})
|
* @RateLimit(limitCallback={RateLimitController::class, 'limitCallback'})
|
||||||
*/
|
*/
|
||||||
class RateLimitController
|
class RateLimitController
|
||||||
{
|
{
|
||||||
@ -97,10 +99,12 @@ class RateLimitController
|
|||||||
return ["QPS 1, 峰值3"];
|
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()` 继续执行或者自行处理。
|
|
Loading…
Reference in New Issue
Block a user