mad-tools / slim-controller
此包的最新版本(1.1.0)没有可用的许可信息。
1.1.0
2014-08-18 13:46 UTC
Requires
- slim/slim: 2.4.3
This package is not auto-updated.
Last update: 2024-09-24 02:57:45 UTC
README
组件集合,允许在 Slim 中完全使用控制器。存在某种类似 HMVC 的结构,因为可以在模块内部调用模块,等等。这允许在其它动作中使用特定动作的方法。
如何使用
初始化
$slim = new \Slim\Slim(); $app = new \SlimController\Controller($slim); $app->add_command('/set/:aaa/', "main::main"); $app->add_route('/test/:a/:b/', function($a, $b) { var_dump($a, $b); }); $app->add_route('/', 'main::index'); /** * Формирование модуля * По сути, тут и определяется как и где лежат модули */ $app->registerModuleDispatcherCallback(function($module_name, $controller) { $class_name = sprintf('\Modules\%s\Module%s', ucfirst($module_name), ucfirst($module_name)); return new $class_name($controller); }); // запуск приложения // определение консольный запуск или же из под апача $mode = (!isset($_SERVER['HTTP_HOST'])) ? \SlimController\Controller::MODE_CLI : \SlimController\Controller::MODE_WEB; $app->run($mode);
使用
现在,在模块内部已经可以使用 动作
(也称为 行为
)。更详细的例子可以在 examples
文件夹中查看。这里讨论基本动作。
// запуск метода конкретного экшена $this->createAction('action-name')->someMethod(); // создание саб-экшена $this->createAction('action-name')->createAction('another-action'); // дергает другой модуль и действие в нем $this->getController()->createModule('module-name')->createAction('action-name');
提供控制台路由和 Web 路由。控制台路由基于 Slim 路由器 {via('CONSOLE')} 构建,这允许它们在 Web 路由遍历时被忽略,反之亦然,在从控制台启动时被考虑。
安装
{ "require": { "mad-tools/slim-controller": "dev-master" } }