mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-10 00:22:48 +08:00
改进Loader类controller和validate方法 支持多层
This commit is contained in:
@@ -369,17 +369,7 @@ class Loader
|
|||||||
if (isset(self::$instance[$guid])) {
|
if (isset(self::$instance[$guid])) {
|
||||||
return self::$instance[$guid];
|
return self::$instance[$guid];
|
||||||
}
|
}
|
||||||
if (false !== strpos($name, '\\')) {
|
list($module, $class) = $this->getModuleAndClass($name, $layer, $appendSuffix);
|
||||||
$class = $name;
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
} else {
|
|
||||||
if (strpos($name, '/')) {
|
|
||||||
list($module, $name) = explode('/', $name, 2);
|
|
||||||
} else {
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
}
|
|
||||||
$class = self::parseClass($module, $layer, $name, $appendSuffix);
|
|
||||||
}
|
|
||||||
if (class_exists($class)) {
|
if (class_exists($class)) {
|
||||||
$model = new $class();
|
$model = new $class();
|
||||||
} else {
|
} else {
|
||||||
@@ -405,17 +395,7 @@ class Loader
|
|||||||
*/
|
*/
|
||||||
public static function controller($name, $layer = 'controller', $appendSuffix = false, $empty = '')
|
public static function controller($name, $layer = 'controller', $appendSuffix = false, $empty = '')
|
||||||
{
|
{
|
||||||
if (false !== strpos($name, '\\')) {
|
list($module, $class) = $this->getModuleAndClass($name, $layer, $appendSuffix);
|
||||||
$class = $name;
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
} else {
|
|
||||||
if (strpos($name, '/')) {
|
|
||||||
list($module, $name) = explode('/', $name);
|
|
||||||
} else {
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
}
|
|
||||||
$class = self::parseClass($module, $layer, $name, $appendSuffix);
|
|
||||||
}
|
|
||||||
if (class_exists($class)) {
|
if (class_exists($class)) {
|
||||||
return App::invokeClass($class);
|
return App::invokeClass($class);
|
||||||
} elseif ($empty && class_exists($emptyClass = self::parseClass($module, $layer, $empty, $appendSuffix))) {
|
} elseif ($empty && class_exists($emptyClass = self::parseClass($module, $layer, $empty, $appendSuffix))) {
|
||||||
@@ -444,17 +424,7 @@ class Loader
|
|||||||
if (isset(self::$instance[$guid])) {
|
if (isset(self::$instance[$guid])) {
|
||||||
return self::$instance[$guid];
|
return self::$instance[$guid];
|
||||||
}
|
}
|
||||||
if (false !== strpos($name, '\\')) {
|
list($module, $class) = $this->getModuleAndClass($name, $layer, $appendSuffix);
|
||||||
$class = $name;
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
} else {
|
|
||||||
if (strpos($name, '/')) {
|
|
||||||
list($module, $name) = explode('/', $name);
|
|
||||||
} else {
|
|
||||||
$module = Request::instance()->module();
|
|
||||||
}
|
|
||||||
$class = self::parseClass($module, $layer, $name, $appendSuffix);
|
|
||||||
}
|
|
||||||
if (class_exists($class)) {
|
if (class_exists($class)) {
|
||||||
$validate = new $class;
|
$validate = new $class;
|
||||||
} else {
|
} else {
|
||||||
@@ -469,6 +439,29 @@ class Loader
|
|||||||
return $validate;
|
return $validate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析模块和类名
|
||||||
|
* @param string $name 资源地址
|
||||||
|
* @param string $layer 验证层名称
|
||||||
|
* @param bool $appendSuffix 是否添加类名后缀
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function getModuleAndClass($name, $layer, $appendSuffix)
|
||||||
|
{
|
||||||
|
if (false !== strpos($name, '\\')) {
|
||||||
|
$module = Request::instance()->module();
|
||||||
|
$class = $name;
|
||||||
|
} else {
|
||||||
|
if (strpos($name, '/')) {
|
||||||
|
list($module, $name) = explode('/', $name, 2);
|
||||||
|
} else {
|
||||||
|
$module = Request::instance()->module();
|
||||||
|
}
|
||||||
|
$class = self::parseClass($module, $layer, $name, $appendSuffix);
|
||||||
|
}
|
||||||
|
return [$module, $class];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据库初始化 并取得数据库类实例
|
* 数据库初始化 并取得数据库类实例
|
||||||
* @param mixed $config 数据库配置
|
* @param mixed $config 数据库配置
|
||||||
|
|||||||
Reference in New Issue
Block a user