From 5fe605705d06ff46133c0aadab75f3ffc8682487 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sat, 24 Dec 2016 09:39:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/App.php | 25 +++++++++---------------- library/think/Loader.php | 5 ++--- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/library/think/App.php b/library/think/App.php index 5f7107b0..dc22cbe1 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -141,13 +141,13 @@ class App break; case 'controller': // 执行控制器操作 - $vars = Request::instance()->param(); - $data = Loader::action($dispatch['controller'], array_merge($vars, $dispatch['var']), $config['url_controller_layer'], $config['controller_suffix'], true); + $vars = array_merge(Request::instance()->param(), $dispatch['var']); + $data = Loader::action($dispatch['controller'], $vars, $config['url_controller_layer'], $config['controller_suffix']); break; case 'method': // 执行回调方法 - $vars = Request::instance()->param(); - $data = self::invokeMethod($dispatch['method'], array_merge($vars, $dispatch['var'])); + $vars = array_merge(Request::instance()->param(), $dispatch['var']); + $data = self::invokeMethod($dispatch['method'], $vars); break; case 'function': // 执行闭包 @@ -217,10 +217,9 @@ class App * @access public * @param string|array $method 方法 * @param array $vars 变量 - * @param bool $filter 是否全局过滤 * @return mixed */ - public static function invokeMethod($method, $vars = [], $filter = true) + public static function invokeMethod($method, $vars = []) { if (is_array($method)) { $class = is_object($method[0]) ? $method[0] : self::invokeClass($method[0]); @@ -229,7 +228,7 @@ class App // 静态方法 $reflect = new \ReflectionMethod($method); } - $args = self::bindParams($reflect, $vars, $filter); + $args = self::bindParams($reflect, $vars); self::$debug && Log::record('[ RUN ] ' . $reflect->class . '->' . $reflect->name . '[ ' . $reflect->getFileName() . ' ]', 'info'); return $reflect->invokeArgs(isset($class) ? $class : null, $args); @@ -240,15 +239,14 @@ class App * @access public * @param string $class 类名 * @param array $vars 变量 - * @param bool $filter 是否全局过滤 * @return mixed */ - public static function invokeClass($class, $vars = [], $filter = true) + public static function invokeClass($class, $vars = []) { $reflect = new \ReflectionClass($class); $constructor = $reflect->getConstructor(); if ($constructor) { - $args = self::bindParams($constructor, $vars, $filter); + $args = self::bindParams($constructor, $vars); } else { $args = []; } @@ -260,10 +258,9 @@ class App * @access public * @param \ReflectionMethod|\ReflectionFunction $reflect 反射类 * @param array $vars 变量 - * @param bool $filter 是否全局过滤 * @return array */ - private static function bindParams($reflect, $vars = [], $filter = true) + private static function bindParams($reflect, $vars = []) { if (empty($vars)) { // 自动获取请求变量 @@ -307,10 +304,6 @@ class App throw new \InvalidArgumentException('method param miss:' . $name); } } - // 全局过滤 - if ($filter) { - array_walk_recursive($args, [Request::instance(), 'filterExp']); - } } return $args; } diff --git a/library/think/Loader.php b/library/think/Loader.php index 951d5227..effd3f4a 100644 --- a/library/think/Loader.php +++ b/library/think/Loader.php @@ -481,10 +481,9 @@ class Loader * @param string|array $vars 调用参数 支持字符串和数组 * @param string $layer 要调用的控制层名称 * @param bool $appendSuffix 是否添加类名后缀 - * @param bool $filter 是否全局过滤 * @return mixed */ - public static function action($url, $vars = [], $layer = 'controller', $appendSuffix = false, $filter = false) + public static function action($url, $vars = [], $layer = 'controller', $appendSuffix = false) { $info = pathinfo($url); $action = $info['basename']; @@ -498,7 +497,7 @@ class Loader $vars = [$vars]; } } - return App::invokeMethod([$class, $action . Config::get('action_suffix')], $vars, $filter); + return App::invokeMethod([$class, $action . Config::get('action_suffix')], $vars); } }