PluginController

PluginController.php位于app/下。建议所有应用的控制器的都最终继承此父类,它定义所有应用控制器的公共成员变量和方法。其结构如下:

namespace app;

class PluginController extends BaseController
{
    protected $pageSize = 20;

    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 统一视图
     * @param array $assign
     * @param string $view
     * @param null $app
     * @return mixed
     * @Author  fudaoji<fdj@kuryun.cn>
     */
    public function show($assign = [], $view = '', $app = ''){
        $controller_layer = explode('/', \request()->getController());
        switch (count($controller_layer)){
            case 6:
                $app = $controller_layer[4];
                break;
        }
        $controller = str_replace("controller", "", $controller_layer[count($controller_layer) - 1]);
        $action = \request()->getAction();
        if ($view) {
            $layer = explode('/', $view);
            switch(count($layer)){
                case 3:
                    $controller = $layer[1];
                    $action = $layer[2];
                    $app = $layer[0];
                    break;
                case 2:
                    $controller = $layer[0];
                    $action = $layer[1];
                    break;
                default:
                    $action = $layer[0];
                    break;
            }
        }

        $template = strtolower($app . DIRECTORY_SEPARATOR . $this->theme. DIRECTORY_SEPARATOR. $controller . DIRECTORY_SEPARATOR . $action);
        $assign['controller'] = $controller;
        $assign['action'] = $action;
        $assign['app'] = request()->plugin;
        return view($template, $assign, null);
    }
}