public function willRespondToRequest($controllerClass, Request $request) { if (!class_exists($controllerClass)) { throw new InvalidArgumentException('existing class name', $controllerClass); } if (!isset($controllerClass::$_ajaxAccess) || !is_array($controllerClass::$_ajaxAccess)) { return true; } $method = strtolower($request->getMethod()); $accessControl = array_merge(array('get' => self::BOTH, 'post' => self::BOTH, 'put' => self::BOTH, 'delete' => self::BOTH), $controllerClass::$_ajaxAccess); if ($accessControl[$method] === self::NORMAL_ONLY && $request->isXmlHttpRequest() || $accessControl[$method] === self::AJAX_ONLY && !$request->isXmlHttpRequest()) { return false; } return true; }
/** * Tries to find a route for the given request. * * @param Request $request * @return array|bool Array of information about a found route or false if no route found. */ public function getRouteForRequest(Request $request) { return $this->getRouteForUrl($request->getPathInfo(), $request->getMethod()); }