From 55ca76ccaeb0653e95afafb4bf57ee0cfcbf3015 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Tue, 20 Dec 2016 22:36:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BLoader=E7=B1=BB=E7=9A=84model?= =?UTF-8?q?=20controller=20=E5=92=8C=20validate=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9B=B4=E6=8E=A5=E4=BC=A0=E5=85=A5=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=E5=AE=9E=E4=BE=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Loader.php | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/library/think/Loader.php b/library/think/Loader.php index 57f6a41f..effd3f4a 100644 --- a/library/think/Loader.php +++ b/library/think/Loader.php @@ -369,12 +369,16 @@ class Loader if (isset(self::$instance[$guid])) { return self::$instance[$guid]; } - if (strpos($name, '/')) { - list($module, $name) = explode('/', $name, 2); + if (strpos($name, '\\')) { + $class = $name; } else { - $module = Request::instance()->module(); + if (strpos($name, '/')) { + list($module, $name) = explode('/', $name, 2); + } else { + $module = Request::instance()->module(); + } + $class = self::parseClass($module, $layer, $name, $appendSuffix); } - $class = self::parseClass($module, $layer, $name, $appendSuffix); if (class_exists($class)) { $model = new $class(); } else { @@ -400,12 +404,16 @@ class Loader */ public static function controller($name, $layer = 'controller', $appendSuffix = false, $empty = '') { - if (strpos($name, '/')) { - list($module, $name) = explode('/', $name); + if (strpos($name, '\\')) { + $class = $name; } else { - $module = Request::instance()->module(); + if (strpos($name, '/')) { + list($module, $name) = explode('/', $name); + } else { + $module = Request::instance()->module(); + } + $class = self::parseClass($module, $layer, $name, $appendSuffix); } - $class = self::parseClass($module, $layer, $name, $appendSuffix); if (class_exists($class)) { return App::invokeClass($class); } elseif ($empty && class_exists($emptyClass = self::parseClass($module, $layer, $empty, $appendSuffix))) { @@ -432,12 +440,16 @@ class Loader if (isset(self::$instance[$guid])) { return self::$instance[$guid]; } - if (strpos($name, '/')) { - list($module, $name) = explode('/', $name); + if (strpos($name, '\\')) { + $class = $name; } else { - $module = Request::instance()->module(); + if (strpos($name, '/')) { + list($module, $name) = explode('/', $name); + } else { + $module = Request::instance()->module(); + } + $class = self::parseClass($module, $layer, $name, $appendSuffix); } - $class = self::parseClass($module, $layer, $name, $appendSuffix); if (class_exists($class)) { $validate = new $class; } else {