ed.suharev / slick-framework
基于Slim 2框架和RKA控制器,简单兼容PHP 5.3的框架
1.0.0
2019-03-23 12:36 UTC
Requires
- php: >=5.3
- pimple/pimple: ^3.0
- slim/slim: ~2.4
This package is auto-updated.
Last update: 2024-09-24 21:09:04 UTC
README
此框架基于Slim Framework,但增加了一些便利性,例如在路由时可以实例化控制器并使用操作方法,而不是通常使用的闭包(此功能直接来自rka-slim-controller)。
控制器可以从DI容器中可选地加载,允许您根据需要注入依赖项。
主要是复制粘贴并重新编写了基本的Slim应用程序类,因此它仍然依赖于Slim2框架。它至少需要PHP 5.3,假设您使用Composer安装它并使用Composer的自动加载器。
除了Slim2功能外
- 使用Yaml文件配置路由
- 支持在路由配置中控制器类
安装
composer require ed-sukharev/slick-framework
使用
在通常使用闭包的地方使用字符串格式 {controller class name}:{action method name}
例如:
$app = new \Slick\Slick();
$app->get('/hello:name', 'App\IndexController:home');
您还可以将控制器注册到Slim的DI容器中
$app = new \Slick\Slick();
$app->container['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');
控制器类方法
就像Slim一样,Slick将控制器操作传递给其参数。此外,如果控制器操作的第一个参数被类型化为\Slim\Http\Request
,则实际请求将作为第一个参数传递,然后是其他Slim参数。 Slick 假设您在DI容器中将所有依赖项注入到控制器中。对于那种仍然需要DI容器的情况,Slick提供了\Slick\ContainerAwareInterface
,您可以在控制器中实现它,或者最好是从\Slick\SlickController
扩展您的控制器。Slick将设置兼容PSR-11的DI容器。