tox2ik / rka-slim-controller-json
此包已被废弃且不再维护。未建议替代包。
为 Slim 框架动态实例化的控制器类
2.0.3
2016-10-04 13:42 UTC
Requires
- php: 5.3.*
- slim/slim: ~2.4
README
是 Slim 框架 的扩展,允许你在路由时使用动态实例化的控制器和操作方法。
控制器可以可选地从 Slim 的依赖注入容器中加载,允许你按需注入依赖。
安装
composer require akrabat/rka-slim-controller
用法
使用字符串格式 {控制器类名}:{操作方法名}
,替换通常使用闭包的地方
例如:
$app = new \RKA\Slim();
$app->get('/hello:name', 'App\IndexController:home');
你也可以将控制器注册到 Slim 的依赖注入容器中
$app = new \RKA\Slim();
$app->container->singleton('App\IndexController', function ($container) {
// Retrieve any required dependencies from the container and
// inject into the constructor of the controller
return new \App\IndexController();
});
$app->get('/', 'App\IndexController:index');
控制器类方法
RKA Slim 控制器 将调用控制器中存在的 setApp()
、setRequest()
和 setResponse()
方法,并相应地填充。然后调用控制器的 `init()` 方法。
因此,一个典型的控制器可能如下所示
<?php
namespace App;
class IndexController
{
// Optional properties
protected $app;
protected $request;
protected $response;
public function index()
{
echo "This is the home page";
}
public function hello($name)
{
echo "Hello, $name";
}
// Optional setters
public function setApp($app)
{
$this->app = $app;
}
public function setRequest($request)
{
$this->request = $request;
}
public function setResponse($response)
{
$this->response = $response;
}
// Init
public function init()
{
// do things now that app, request and response are set.
}
}
示例项目
查看 slim-di。