ed.suharev/slick-framework

基于Slim 2框架和RKA控制器,简单兼容PHP 5.3的框架

1.0.0 2019-03-23 12:36 UTC

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容器。