mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-11-30 10:47:44 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
5ae0c6289d
@ -1,6 +1,6 @@
|
||||
# 指南前言
|
||||
|
||||
为了帮助开发者更好的为 Hyperf 开发组件,共建生态,我们提供了本指南用于指导开发者进行组件开发,在阅读本指南前,需要您对 Hyperf 的文档进行了 **全面** 的阅读,特别是 [协程](zh/coroutine.md) 和 [依赖注入](zh/di.md) 章节,如果对 Hyperf 的基础组件缺少充分的理解,可能会导致开发时出现错误。
|
||||
为了帮助开发者更好的为 Hyperf 开发组件,共建生态,我们提供了本指南用于指导开发者进行组件开发,在阅读本指南前,需要您对 Hyperf 的文档进行了 **全面** 的阅读,特别是 [协程](en/coroutine.md) 和 [依赖注入](en/di.md) 章节,如果对 Hyperf 的基础组件缺少充分的理解,可能会导致开发时出现错误。
|
||||
|
||||
# 组件开发的目的
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Controller
|
||||
|
||||
通过控制器来处理 HTTP 请求,需要通过 `配置文件` 或 `注解` 的形式将路由与控制器方法进行绑定,具体请查阅 [路由](zh/route.md) 章节。
|
||||
对于 `请求(Request)` 与 `响应(Response)`,Hyperf 提供了 `Hyperf\HttpServer\Contract\RequestInterface` 和 `Hyperf\HttpServer\Contract\ResponseInterface` 方便您获取入参和返回数据,关于 [请求](zh/request.md) 与 [响应](zh/response.md) 的详细内容请查阅对应的章节。
|
||||
通过控制器来处理 HTTP 请求,需要通过 `配置文件` 或 `注解` 的形式将路由与控制器方法进行绑定,具体请查阅 [路由](en/route.md) 章节。
|
||||
对于 `请求(Request)` 与 `响应(Response)`,Hyperf 提供了 `Hyperf\HttpServer\Contract\RequestInterface` 和 `Hyperf\HttpServer\Contract\ResponseInterface` 方便您获取入参和返回数据,关于 [请求](en/request.md) 与 [响应](en/response.md) 的详细内容请查阅对应的章节。
|
||||
|
||||
## Create a Controller
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
# 使用方法
|
||||
|
||||
在您通过 [查询构造器](zh/db/querybuilder.md) 或 [模型](zh/db/model.md) 查询数据时,可以通过 `paginate` 方法来处理分页,该方法会自动根据用户正在查看的页面来设置限制和偏移量,默认情况下,通过当前 HTTP 请求所带的 `page` 参数的值来检测当前的页数:
|
||||
在您通过 [查询构造器](en/db/querybuilder.md) 或 [模型](en/db/model.md) 查询数据时,可以通过 `paginate` 方法来处理分页,该方法会自动根据用户正在查看的页面来设置限制和偏移量,默认情况下,通过当前 HTTP 请求所带的 `page` 参数的值来检测当前的页数:
|
||||
|
||||
> 由于 Hyperf 当前并不支持视图,所以分页组件尚未支持对视图的渲染,直接返回分页结果默认会以 application/json 格式输出。
|
||||
|
||||
@ -36,4 +36,4 @@ return User::where('gender', 1)->paginate(10);
|
||||
|
||||
## 分页器实例方法
|
||||
|
||||
这里仅说明分页器在数据库查询上的使用方法,更多关于分页器的细节可阅读 [分页](zh/paginator.md) 章节。
|
||||
这里仅说明分页器在数据库查询上的使用方法,更多关于分页器的细节可阅读 [分页](en/paginator.md) 章节。
|
@ -3,7 +3,7 @@
|
||||
## 简介
|
||||
|
||||
Hyperf 默认采用 [hyperf/di](https://github.com/hyperf-cloud/di) 作为框架的依赖注入管理容器,尽管从设计上我们允许您更换其它的依赖注入管理容器,但我们强烈不建议您更换该组件。
|
||||
[hyperf/di](https://github.com/hyperf-cloud/di) 是一个强大的用于管理类的依赖关并完成自动注入的组件,与传统依赖注入容器的区别在于更符合长生命周期的应用使用、提供了 [注解及注解注入](zh/annotation.md) 的支持、提供了无比强大的 [AOP 面向切面编程](zh/aop.md) 能力,这些能力及易用性作为 Hyperf 的核心输出,我们自信的认为该组件是最优秀的。
|
||||
[hyperf/di](https://github.com/hyperf-cloud/di) 是一个强大的用于管理类的依赖关并完成自动注入的组件,与传统依赖注入容器的区别在于更符合长生命周期的应用使用、提供了 [注解及注解注入](en/annotation.md) 的支持、提供了无比强大的 [AOP 面向切面编程](en/aop.md) 能力,这些能力及易用性作为 Hyperf 的核心输出,我们自信的认为该组件是最优秀的。
|
||||
|
||||
## Installation
|
||||
|
||||
@ -169,7 +169,7 @@ class IndexController
|
||||
|
||||
### 工厂对象注入
|
||||
|
||||
我们假设 `UserService` 的实现会更加复杂一些,在创建 `UserService` 对象时构造函数还需要传递进来一些非直接注入型的参数,假设我们需要从配置中取得一个值,然后 `UserService` 需要根据这个值来决定是否开启缓存模式(顺带一说 Hyperf 提供了更好用的 [模型缓存](zh/db/model-cache.md) 功能)
|
||||
我们假设 `UserService` 的实现会更加复杂一些,在创建 `UserService` 对象时构造函数还需要传递进来一些非直接注入型的参数,假设我们需要从配置中取得一个值,然后 `UserService` 需要根据这个值来决定是否开启缓存模式(顺带一说 Hyperf 提供了更好用的 [模型缓存](en/db/model-cache.md) 功能)
|
||||
|
||||
我们需要创建一个工厂来生成 `UserService` 对象:
|
||||
|
||||
@ -239,7 +239,7 @@ return [
|
||||
### 容器仅管理长生命周期的对象
|
||||
|
||||
换种方式理解就是容器内管理的对象**都是单例**,这样的设计对于长生命周期的应用来说会更加的高效,减少了大量无意义的对象创建和销毁,这样的设计也就意味着所有需要交由 DI 容器管理的对象**均不能包含** `状态` 值。
|
||||
`状态` 可直接理解为会随着请求而变化的值,事实上在 [协程](zh/coroutine.md) 编程中,这些状态值也是应该存放于 `协程上下文` 中的,即 `Hyperf\Utils\Context`。
|
||||
`状态` 可直接理解为会随着请求而变化的值,事实上在 [协程](en/coroutine.md) 编程中,这些状态值也是应该存放于 `协程上下文` 中的,即 `Hyperf\Utils\Context`。
|
||||
|
||||
## 短生命周期对象
|
||||
|
||||
|
@ -71,7 +71,7 @@ grpc
|
||||
|
||||
- gRPC server 服务器配置
|
||||
|
||||
`server.php` 文件(参考 [配置](zh/config.md)):
|
||||
`server.php` 文件(参考 [配置](en/config.md)):
|
||||
|
||||
```php
|
||||
'servers' => [
|
||||
@ -91,7 +91,7 @@ grpc
|
||||
|
||||
- gRPC server 路由配置
|
||||
|
||||
`routes.php` 文件(参考 [路由](zh/router.md)):
|
||||
`routes.php` 文件(参考 [路由](en/router.md)):
|
||||
|
||||
```php
|
||||
Router::addServer('grpc', function () {
|
||||
|
@ -173,7 +173,7 @@ class Log
|
||||
|
||||
是的, 还是通过强大的 `容器(Container)`.
|
||||
|
||||
- 首先, 实现一个 `StdoutLoggerFactory` 类,关于 `Factory` 的用法可在 [依赖注入](zh/di.md) 章节获得更多详细的说明。
|
||||
- 首先, 实现一个 `StdoutLoggerFactory` 类,关于 `Factory` 的用法可在 [依赖注入](en/di.md) 章节获得更多详细的说明。
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
@ -1,7 +1,7 @@
|
||||
# 分页器
|
||||
|
||||
在您需要对数据进行分页处理时,可以借助 [hyperf/paginator](https://github.com/hyperf-cloud/paginator) 组件很方便的解决您的问题,您可对您的数据查询进行一定的封装处理,以便更好的使用分页功能,该组件也可用于其它框架上。
|
||||
通常情况下,您对分页器的需求可能都是存在于数据库查询上,[hyperf/database](https://github.com/hyperf-cloud/database) 数据库组件已经与分页器组件进行了结合,您可以在进行数据查询时很方便的调用分页器来实现分页,具体可查阅 [数据库模型-分页](zh/db/paginator.md) 章节。
|
||||
通常情况下,您对分页器的需求可能都是存在于数据库查询上,[hyperf/database](https://github.com/hyperf-cloud/database) 数据库组件已经与分页器组件进行了结合,您可以在进行数据查询时很方便的调用分页器来实现分页,具体可查阅 [数据库模型-分页](en/db/paginator.md) 章节。
|
||||
|
||||
# 安装
|
||||
|
||||
|
@ -6,7 +6,7 @@ In order to let you know more about the use of `Hyperf`, this chapter will intro
|
||||
|
||||
Hyperf use [nikic/fast-route] (https://github.com/nikic/FastRoute) as the default routing component, so you can easily define your route in `config/routes.php`.
|
||||
|
||||
Not only that,Hyperf also provides an extremely powerful and convenient "Annotation Routing" feature, for more information on routing, please refer to the [Router] (zh/router.md) section.
|
||||
Not only that,Hyperf also provides an extremely powerful and convenient "Annotation Routing" feature, for more information on routing, please refer to the [Router] (en/router.md) section.
|
||||
|
||||
### Define routes by file configuration
|
||||
|
||||
@ -36,7 +36,7 @@ Router::addRoute(['GET', 'POST', 'HEAD'], '/multi', [\App\Controller\IndexContro
|
||||
|
||||
### Define routes by annotations
|
||||
|
||||
`Hyperf` provides an extremely powerful and convenient [annotation] (zh/annotation.md) feature, and there is no doubt that the definition of the route also provides a way to define by annotation. Hyperf provides `@Controller` and `@ AutoController` annotations to define a `Controller`. Here is a brief description. For more details, please refer to the [Routing] (zh/router.md) section.
|
||||
`Hyperf` provides an extremely powerful and convenient [annotation] (en/annotation.md) feature, and there is no doubt that the definition of the route also provides a way to define by annotation. Hyperf provides `@Controller` and `@ AutoController` annotations to define a `Controller`. Here is a brief description. For more details, please refer to the [Routing] (en/router.md) section.
|
||||
|
||||
### Define routes by `@AutoController`
|
||||
s
|
||||
|
@ -71,7 +71,7 @@ class RateLimitController
|
||||
## 触发限流
|
||||
当限流被触发时, 默认会抛出 `Hyperf\RateLimit\Exception\RateLimitException` 异常
|
||||
|
||||
可以通过[异常处理](zh/exception-handler.md)或者配置 `limitCallback` 限流回调处理。
|
||||
可以通过[异常处理](en/exception-handler.md)或者配置 `limitCallback` 限流回调处理。
|
||||
|
||||
例如:
|
||||
```php
|
||||
|
@ -82,7 +82,7 @@ Router::addGroup('/user/',function (){
|
||||
|
||||
### 通过注解定义路由
|
||||
|
||||
`Hyperf` 提供了非常便利的 [注解](zh/annotation.md) 路由功能,您可以直接在任意类上通过定义 `@Controller` 或 `@AutoController` 注解来完成一个路由的定义。
|
||||
`Hyperf` 提供了非常便利的 [注解](en/annotation.md) 路由功能,您可以直接在任意类上通过定义 `@Controller` 或 `@AutoController` 注解来完成一个路由的定义。
|
||||
|
||||
#### `@AutoController` 注解
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
# 注册服务
|
||||
|
||||
注册服务可通过 `@RpcService` 注解对一个类进行定义,即为发布这个服务了,目前 Hyperf 仅适配了 JSON RPC 协议,具体内容也可到 [JSON RPC 服务](./zh/json-rpc.md) 章节了解详情。
|
||||
注册服务可通过 `@RpcService` 注解对一个类进行定义,即为发布这个服务了,目前 Hyperf 仅适配了 JSON RPC 协议,具体内容也可到 [JSON RPC 服务](./en/json-rpc.md) 章节了解详情。
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
@ -90,4 +90,4 @@
|
||||
* Component Development Guide
|
||||
|
||||
* [Introduction](en/component-guide/intro.md)
|
||||
* [Create a new component](en/zh/component-guide/create.md)
|
||||
* [Create a new component](en/component-guide/create.md)
|
||||
|
@ -60,7 +60,7 @@
|
||||
'/summary.md': './zh-cn/summary.md'
|
||||
},
|
||||
plugins: [
|
||||
EditOnGithubPlugin.create('https://github.com/hyperf/hyperf/tree/master/doc/')
|
||||
EditOnGithubPlugin.create('https://github.com/hyperf/hyperf/tree/master/docs/')
|
||||
],
|
||||
plantuml: {
|
||||
skin: 'classic',
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
## 如何提交我的组件?
|
||||
|
||||
如果您开发的协程组件适配了 Hyperf,那么您可以直接对 [hyperf/hyperf](https://github.com/hyperf/hyperf) 项目的 `master` 分支发起您的 `Pull Request`,也就是更改当前页`(./doc/zh/awesome-components.md)`。
|
||||
如果您开发的协程组件适配了 Hyperf,那么您可以直接对 [hyperf/hyperf](https://github.com/hyperf/hyperf) 项目的 `master` 分支发起您的 `Pull Request`,也就是更改当前页`(./doc/zh-cn/awesome-components.md)`。
|
||||
|
||||
## 如何适配 Hyperf ?
|
||||
|
||||
@ -117,6 +117,7 @@
|
||||
|
||||
- [mabu233/sdebug](https://github.com/mabu233/sdebug) 用于协助开发与调试,`xdebug`的协程改造版
|
||||
- [firstphp/wsdebug](https://github.com/lamplife/wsdebug) 通过 `WebSocket` 实时观测异常错误的开发调试组件
|
||||
- [qbhy/hyperf-multi-env](https://github.com/qbhy/hyperf-multi-env) 支持与 laravel 类似的多 env 配置文件功能,通过 `APP_ENV=testing` 可以加载 `.env.testing` 配置覆盖默认的 `.env`
|
||||
|
||||
## 权限认证
|
||||
|
||||
|
@ -317,7 +317,7 @@ class OnMetricFactoryReady implements ListenerInterface
|
||||
|
||||
您可以使用 `@Counter(name="stat_name_here")` 和 `@Histogram(name="stat_name_here")` 来统计切面的调用次数和运行时间。
|
||||
|
||||
关于注解的使用请参阅[注解章节](https://doc.hyperf.io/#/zh/annotation)。
|
||||
关于注解的使用请参阅[注解章节](zh-cn/annotation)。
|
||||
|
||||
### 自定义 Histogram Bucket
|
||||
|
||||
|
@ -8,4 +8,4 @@
|
||||
|
||||
## 通过容器获取的类都是单例
|
||||
|
||||
通过依赖注入容器获取的都是进程内持久化的,是多个协程共享的,所以不能包含任何的请求唯一的数据或协程唯一的数据,这类型的数据都通过协程上下文去处理,具体请仔细阅读 [依赖注入](./zh/di.md) 和 [协程](./zh/coroutine.md) 章节。
|
||||
通过依赖注入容器获取的都是进程内持久化的,是多个协程共享的,所以不能包含任何的请求唯一的数据或协程唯一的数据,这类型的数据都通过协程上下文去处理,具体请仔细阅读 [依赖注入](./zh-cn/di.md) 和 [协程](./zh-cn/coroutine.md) 章节。
|
@ -16,4 +16,4 @@
|
||||
## 版本迭代周期
|
||||
|
||||
Hyperf 采用敏捷开发模式,每周一个迭代计划,并于 `每周的星期四 (UTC/GMT+08:00)` 发布一个版本,通常来说是一个 z 版本的发布,也有可能是一个 y 版本。而对于 x 版本,则会根据实际的研究成果情况而决定具体的迭代计划和时间。
|
||||
关于 Hyperf 采用的版本规则,请查阅 [版本说明](zh/versions.md) 一章。
|
||||
关于 Hyperf 采用的版本规则,请查阅 [版本说明](zh-cn/versions.md) 一章。
|
||||
|
@ -10,7 +10,7 @@ composer require hyperf/service-governance
|
||||
|
||||
# 注册服务
|
||||
|
||||
注册服务可通过 `@RpcService` 注解对一个类进行定义,即为发布这个服务了,目前 Hyperf 仅适配了 JSON RPC 协议,具体内容也可到 [JSON RPC 服务](./zh/json-rpc.md) 章节了解详情。
|
||||
注册服务可通过 `@RpcService` 注解对一个类进行定义,即为发布这个服务了,目前 Hyperf 仅适配了 JSON RPC 协议,具体内容也可到 [JSON RPC 服务](./zh-cn/json-rpc.md) 章节了解详情。
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
@ -201,6 +201,8 @@ return [
|
||||
|
||||
由于要升级到 2.0 版本的组件,而原来 skeleton 项目默认情况下是依赖 1.1.x 版本的组件的,所以我们需要对依赖的约束条件进行一些调整,将原来所有 Hyperf 组件的依赖 `~1.1.0` 修改为 `~2.0.0`,修改完后需运行 `composer update` 来将依赖项升级到 2.0 版本。
|
||||
|
||||
`phpstan/phpstan` 版本依赖修改为 `^0.12`。
|
||||
|
||||
## 完成升级
|
||||
|
||||
至此,2.0 版本发升级即已完成,但由于 Hyperf 的各个底层文件都是可以通过 DI 来实现重写的,如您重写了某些本次升级调整到了的框架内部文件,您仍需再根据您的实际情况进行一定的调整。
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
## 如何提交我的組件?
|
||||
|
||||
如果您開發的協程組件適配了 Hyperf,那麼您可以直接對 [hyperf/hyperf](https://github.com/hyperf/hyperf) 項目的 `master` 分支發起您的 `Pull Request`,也就是更改當前頁`(./doc/zh/awesome-components.md)`。
|
||||
如果您開發的協程組件適配了 Hyperf,那麼您可以直接對 [hyperf/hyperf](https://github.com/hyperf/hyperf) 項目的 `master` 分支發起您的 `Pull Request`,也就是更改當前頁`(./doc/zh-hk/awesome-components.md)`。
|
||||
|
||||
## 如何適配 Hyperf ?
|
||||
|
||||
@ -117,6 +117,7 @@
|
||||
|
||||
- [mabu233/sdebug](https://github.com/mabu233/sdebug) 用於協助開發與調試,`xdebug`的協程改造版
|
||||
- [firstphp/wsdebug](https://github.com/lamplife/wsdebug) 通過 `WebSocket` 實時觀測異常錯誤的開發調試組件
|
||||
- [qbhy/hyperf-multi-env](https://github.com/qbhy/hyperf-multi-env) 支持與 laravel 類似的多 env 配置文件功能,通過 `APP_ENV=testing` 可以加載 `.env.testing` 配置覆蓋默認的 `.env`
|
||||
|
||||
## 權限認證
|
||||
|
||||
|
@ -317,7 +317,7 @@ class OnMetricFactoryReady implements ListenerInterface
|
||||
|
||||
您可以使用 `@Counter(name="stat_name_here")` 和 `@Histogram(name="stat_name_here")` 來統計切面的調用次數和運行時間。
|
||||
|
||||
關於註解的使用請參閲[註解章節](https://doc.hyperf.io/#/zh/annotation)。
|
||||
關於註解的使用請參閲[註解章節](zh-hk/annotation)。
|
||||
|
||||
### 自定義 Histogram Bucket
|
||||
|
||||
|
@ -8,4 +8,4 @@
|
||||
|
||||
## 通過容器獲取的類都是單例
|
||||
|
||||
通過依賴注入容器獲取的都是進程內持久化的,是多個協程共享的,所以不能包含任何的請求唯一的數據或協程唯一的數據,這類型的數據都通過協程上下文去處理,具體請仔細閲讀 [依賴注入](./zh/di.md) 和 [協程](./zh/coroutine.md) 章節。
|
||||
通過依賴注入容器獲取的都是進程內持久化的,是多個協程共享的,所以不能包含任何的請求唯一的數據或協程唯一的數據,這類型的數據都通過協程上下文去處理,具體請仔細閲讀 [依賴注入](./zh-hk/di.md) 和 [協程](./zh-hk/coroutine.md) 章節。
|
@ -16,4 +16,4 @@
|
||||
## 版本迭代週期
|
||||
|
||||
Hyperf 採用敏捷開發模式,每週一個迭代計劃,並於 `每週的星期四 (UTC/GMT+08:00)` 發佈一個版本,通常來説是一個 z 版本的發佈,也有可能是一個 y 版本。而對於 x 版本,則會根據實際的研究成果情況而決定具體的迭代計劃和時間。
|
||||
關於 Hyperf 採用的版本規則,請查閲 [版本説明](zh/versions.md) 一章。
|
||||
關於 Hyperf 採用的版本規則,請查閲 [版本説明](zh-hk/versions.md) 一章。
|
||||
|
@ -10,7 +10,7 @@ composer require hyperf/service-governance
|
||||
|
||||
# 註冊服務
|
||||
|
||||
註冊服務可通過 `@RpcService` 註解對一個類進行定義,即為發佈這個服務了,目前 Hyperf 僅適配了 JSON RPC 協議,具體內容也可到 [JSON RPC 服務](./zh/json-rpc.md) 章節瞭解詳情。
|
||||
註冊服務可通過 `@RpcService` 註解對一個類進行定義,即為發佈這個服務了,目前 Hyperf 僅適配了 JSON RPC 協議,具體內容也可到 [JSON RPC 服務](./zh-hk/json-rpc.md) 章節瞭解詳情。
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
## 如何提交我的元件?
|
||||
|
||||
如果您開發的協程元件適配了 Hyperf,那麼您可以直接對 [hyperf/hyperf](https://github.com/hyperf/hyperf) 專案的 `master` 分支發起您的 `Pull Request`,也就是更改當前頁`(./doc/zh/awesome-components.md)`。
|
||||
如果您開發的協程元件適配了 Hyperf,那麼您可以直接對 [hyperf/hyperf](https://github.com/hyperf/hyperf) 專案的 `master` 分支發起您的 `Pull Request`,也就是更改當前頁`(./doc/zh-tw/awesome-components.md)`。
|
||||
|
||||
## 如何適配 Hyperf ?
|
||||
|
||||
@ -117,6 +117,7 @@
|
||||
|
||||
- [mabu233/sdebug](https://github.com/mabu233/sdebug) 用於協助開發與除錯,`xdebug`的協程改造版
|
||||
- [firstphp/wsdebug](https://github.com/lamplife/wsdebug) 通過 `WebSocket` 實時觀測異常錯誤的開發除錯元件
|
||||
- [qbhy/hyperf-multi-env](https://github.com/qbhy/hyperf-multi-env) 支持與 laravel 類似的多 env 配置文件功能,通過 `APP_ENV=testing` 可以加載 `.env.testing` 配置覆蓋默認的 `.env`
|
||||
|
||||
## 許可權認證
|
||||
|
||||
|
@ -317,7 +317,7 @@ class OnMetricFactoryReady implements ListenerInterface
|
||||
|
||||
您可以使用 `@Counter(name="stat_name_here")` 和 `@Histogram(name="stat_name_here")` 來統計切面的呼叫次數和執行時間。
|
||||
|
||||
關於註解的使用請參閱[註解章節](https://doc.hyperf.io/#/zh/annotation)。
|
||||
關於註解的使用請參閱[註解章節](zh-tw/annotation)。
|
||||
|
||||
### 自定義 Histogram Bucket
|
||||
|
||||
|
@ -8,4 +8,4 @@
|
||||
|
||||
## 通過容器獲取的類都是單例
|
||||
|
||||
通過依賴注入容器獲取的都是程序內持久化的,是多個協程共享的,所以不能包含任何的請求唯一的資料或協程唯一的資料,這型別的資料都通過協程上下文去處理,具體請仔細閱讀 [依賴注入](./zh/di.md) 和 [協程](./zh/coroutine.md) 章節。
|
||||
通過依賴注入容器獲取的都是程序內持久化的,是多個協程共享的,所以不能包含任何的請求唯一的資料或協程唯一的資料,這型別的資料都通過協程上下文去處理,具體請仔細閱讀 [依賴注入](./zh-tw/di.md) 和 [協程](./zh-tw/coroutine.md) 章節。
|
@ -16,4 +16,4 @@
|
||||
## 版本迭代週期
|
||||
|
||||
Hyperf 採用敏捷開發模式,每週一個迭代計劃,並於 `每週的星期四 (UTC/GMT+08:00)` 釋出一個版本,通常來說是一個 z 版本的釋出,也有可能是一個 y 版本。而對於 x 版本,則會根據實際的研究成果情況而決定具體的迭代計劃和時間。
|
||||
關於 Hyperf 採用的版本規則,請查閱 [版本說明](zh/versions.md) 一章。
|
||||
關於 Hyperf 採用的版本規則,請查閱 [版本說明](zh-tw/versions.md) 一章。
|
||||
|
@ -10,7 +10,7 @@ composer require hyperf/service-governance
|
||||
|
||||
# 註冊服務
|
||||
|
||||
註冊服務可通過 `@RpcService` 註解對一個類進行定義,即為釋出這個服務了,目前 Hyperf 僅適配了 JSON RPC 協議,具體內容也可到 [JSON RPC 服務](./zh/json-rpc.md) 章節瞭解詳情。
|
||||
註冊服務可通過 `@RpcService` 註解對一個類進行定義,即為釋出這個服務了,目前 Hyperf 僅適配了 JSON RPC 協議,具體內容也可到 [JSON RPC 服務](./zh-tw/json-rpc.md) 章節瞭解詳情。
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
Loading…
Reference in New Issue
Block a user