othercode / fcontroller
FController 是控制器/模块的容器。
v1.2.0
2016-08-28 12:25 UTC
Requires
- php: >=5.3.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-07 00:07:16 UTC
README
FController 是控制器/模块的容器。此包允许我们注册多个控制器/模块,可以从公共入口点简单调用它们。同样,我们还可以注册多个库或服务。这些服务或库将在所有模块中可用。
安装
使用 Composer
首先,我们需要将依赖项添加到 composer.json 文件中
"require": {
"othercode/fcontroller": "*",
}
然后,我们需要运行以下命令
composer update
独立安装
我们需要下载此包,然后提取内容,并在代码中包含 fcontroller/autoload.php
文件。
require_once 'fcontroller/autoload.php';
基本用法
首先,我们必须有 FController 需要处理的模块。例如,我们有两个虚拟模块(类)
namespace OtherCode\Examples; class DummyOne extends \OtherCode\FController\Modules\BaseModule { public function sayHello($name) { $this->storage->name = $name; return "Hello, " . $name . "!"; } }
DummyOne 模块有一个名为 sayHello($name)
的方法,该方法接受一个字符串作为参数。此方法返回一个字符串。
namespace OtherCode\Examples; class DummyTwo extends \OtherCode\FController\Modules\BaseModule { public function sayGoodBye() { return "GoodBye, " . $this->storage->name . "!"; } }
DummyTwo 模块再次只有一个名为 sayGoodBye()
的方法,此方法也返回一个字符串。
让我们创建一个简单的应用程序,其中包含我们的两个模块
namespace OtherCode\Examples; require_once 'fcontroller/autoload.php'; require_once 'DummyOne.php'; require_once 'DummyTwo.php'; $app = \OtherCode\FController\FController::getInstance(); $app->setModule('dummy1', 'OtherCode\Examples\DummyOne'); $app->setModule('dummy2', 'OtherCode\Examples\DummyTwo'); try { $response1 = $app->run("dummy1.sayHello", array('name' => 'Rick')); $response2 = $app->run("dummy2.sayGoodBye"); var_dump($response1, $response2); } catch (\Exception $e) { var_dump($e); }
上述代码说明了如何使用单个入口点调用两个不同的模块。我们还可以在模块中使用服务。
此包还有一个消息队列,可用于从我们的模块显示信息性消息。