hoa/dispatcher

该软件包已被废弃且不再维护。没有建议替代包。

Hoa\Dispatcher 库。

1.17.05.02 2017-05-02 12:27 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa 是一套 模块化可扩展结构化 的 PHP 库。
此外,Hoa 致力于成为工业界和研究界之间的桥梁。

Hoa\Dispatcher

Help on IRC Help on Gitter Documentation Board

此库将一些数据定义的任务在可调用对象上分发,或者使用适当的词汇表,在控制器和操作上。它通常与 Hoa\RouterHoa\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 变量访问套件。套件提供了四个基本属性,它们是:routerdispatcherviewdata

文档

《Hoa\Dispatcher》黑客手册包含了关于如何使用这个库以及它是如何工作的详细信息。

要本地生成文档,请执行以下命令

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

更多文档可以在项目的网站上找到:hoa-project.net

获取帮助

主要有两种方式可以获取帮助

贡献

你想贡献吗?谢谢!详细的贡献指南解释了你需要知道的一切。

许可

Hoa遵循新BSD许可(BSD-3-Clause)。请参阅LICENSE以获取详细信息。