hoa / dispatcher
Hoa\Dispatcher 库。
Requires
- hoa/consistency: ~1.0
- hoa/exception: ~1.0
- hoa/zformat: ~1.0
Requires (Dev)
- hoa/router: ~3.0
- hoa/test: ~2.0
- hoa/view: ~3.0
Suggests
- hoa/router: Provide routers.
- hoa/view: Provide view interface.
This package is auto-updated.
Last update: 2021-09-20 08:30:44 UTC
README
Hoa 是一套 模块化、可扩展 和 结构化 的 PHP 库。
此外,Hoa 致力于成为工业界和研究界之间的桥梁。
Hoa\Dispatcher
此库将一些数据定义的任务在可调用对象上分发,或者使用适当的词汇表,在控制器和操作上。它通常与 Hoa\Router
库 和 Hoa\View
库 一起使用。
库与应用程序之间的联系由一个套件表示,该套件聚合所有重要数据,例如分发器、路由器、视图和与视图关联的数据。
了解更多.
安装
使用 Composer,要将此库包含到依赖项中,您需要要求 hoa/dispatcher
$ composer require hoa/dispatcher '~1.0'
有关更多安装程序,请阅读 源页面。
测试
在运行测试套件之前,必须安装开发依赖项
$ composer install
然后,运行所有测试套件
$ vendor/bin/hoa test:run
有关更多信息,请阅读 贡献者指南。
快速使用
我们提供了一个基本分发器的快速概述,该分发器由类 Hoa\Dispatcher\Basic
表示,它能够将任务分发到三种类型的可调用对象
- lambda 函数(作为控制器,没有操作);
- 函数(作为控制器,没有操作);
- 类和方法(分别作为控制器和操作)。
我们将关注最后一种,以下是一个示例
$router = new Hoa\Router\Http(); $router->get('w', '/(?<controller>[^/]+)/(?<action>\w+)\.html'); $dispatcher = new Hoa\Dispatcher\Basic(); $dispatcher->dispatch($router);
默认情况下,控制器将是 Application\Controller\<Controller>
,操作将是 <Action>Action
。因此,对于请求 /Foo/Bar.html
,我们将调用 Application\Controller\Foo::BarAction
。
如果请求是异步的,则可以指定不同的控制器和操作名称。默认情况下,只有操作名称不同,值为 <Action>ActionAsync
。
对于所有类型的可调用对象,基本分发器将捕获数据(使用 (?<name>…)
PCRE 语法)并在可调用参数中分发,其中 name
与参数名称匹配。例如,使用规则 '/hello_(?<nick>\w+)'
,如果可调用对象有一个名为 $nick
的参数,则对于请求 /hello_gordon
,它将接收值 gordon
。
如果控制器是一个扩展 Hoa\Dispatcher\Kit
的类,则可以通过 $_this
参数或 $this
变量访问套件。套件提供了四个基本属性,它们是:router
、dispatcher
、view
和 data
。
文档
《Hoa\Dispatcher》黑客手册包含了关于如何使用这个库以及它是如何工作的详细信息。
要本地生成文档,请执行以下命令
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
更多文档可以在项目的网站上找到:hoa-project.net。
获取帮助
主要有两种方式可以获取帮助
- 在
#hoaproject
IRC频道 - 在users.hoa-project.net的论坛上。
贡献
你想贡献吗?谢谢!详细的贡献指南解释了你需要知道的一切。
许可
Hoa遵循新BSD许可(BSD-3-Clause)。请参阅LICENSE
以获取详细信息。