/** * 路由参数有效性检查 * @access private * @param array $option 路由参数 * @param Request $request Request对象 * @return bool */ private static function checkOption($option, $request) { // 请求类型检测 if (isset($option['method']) && is_string($option['method']) && false === stripos($option['method'], $request->method()) || !empty($option['ajax']) && !$request->isAjax() || !empty($option['pjax']) && !$request->isPjax() || isset($option['ext']) && false === stripos($option['ext'], $request->ext()) || isset($option['deny_ext']) && false !== stripos($option['deny_ext'], $request->ext()) || isset($option['domain']) && !in_array($option['domain'], [$_SERVER['HTTP_HOST'], self::$subDomain]) || !empty($option['https']) && !$request->isSsl() || !empty($option['before_behavior']) && false === Hook::exec($option['before_behavior']) || !empty($option['callback']) && is_callable($option['callback']) && false === call_user_func($option['callback'])) { return false; } return true; }