dann95/slim3-controller-strategy

使用您的规则自定义Slim3加载控制器的方式

dev-master 2017-06-20 18:47 UTC

This package is auto-updated.

Last update: 2024-09-20 04:05:18 UTC


README

此包将帮助您更改Slim 3加载项目控制器的方式,将每个控制器绑定到Slim\Container是一项繁琐的任务,这样在幕后Slim可以确定控制器和方法,使用此包,您可以编写自己的规则来决定路由正在寻找哪个控制器和方法。

安装

composer require dann95/slim3-controller-strategy

用法

<?php

require 'vendor/autoload.php'; // composer autoload

use Dann95\SlimController\Contracts\ControllerSolver;

class MyControllerSolver implements ControllerSolver
{
    public function solve($toResolve)
    {
        // Here we have the code to find and make new instance of class (this is just an example, you must build your logic)
        $explode = explode("@", $toResolve);
        
        // You must return an array like: [$instanceOfController, $methodName];
        $controller = new $explode[0]; // $explode[0] == TheControllerImLookingFor
        return [$controller, $explode[1]]; // $explode[1] == theMethodName
    }
    
}

$myControllerSolver = new MyControllerSolver;
$container = new Dann95\SlimController\Container($myControllerSolver);

$app = new Slim\App($container);
$app->get('/', 'TheControllerImLookingFor@theMethodName');

$app->run();