PluginController.php
1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------------------------------------------
// | Author: Dean <zxxjjforever@163.com>
// +----------------------------------------------------------------------
namespace cmf\controller;
use think\App;
use think\Loader;
class PluginController extends HomeBaseController
{
public function index($_plugin, $_controller, $_action)
{
$_controller = Loader::parseName($_controller, 1);
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $_controller)) {
abort(404, 'controller not exists:' . $_controller);
}
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $_plugin)) {
abort(404, 'plugin not exists:' . $_plugin);
}
$pluginControllerClass = "plugins\\{$_plugin}\\controller\\{$_controller}Controller";;
$vars = [];
return App::invokeMethod([$pluginControllerClass, $_action, $vars]);
}
}