match() public method

Maps HTTP request to a Request object.
public match ( Nette\Http\IRequest $httpRequest ) : Nette\Application\Request | null
$httpRequest Nette\Http\IRequest
return Nette\Application\Request | null
Ejemplo n.º 1
0
 /**
  * @param Nette\Web\IHttpRequest $httpRequest
  * @return Nette\Application\PresenterRequest|NULL
  */
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     /** @var $appRequest \Nette\Application\Request */
     $appRequest = parent::match($httpRequest);
     // doplněno: pokud match vrátí NULL, musíme také vrátit NULL
     if (!$appRequest) {
         return $appRequest;
     }
     // musím si přeložit host, kvůli localhostu to není dané
     if (strpos($httpRequest->url->host, '.localhost') !== false && !\Nette\Environment::isProduction()) {
         // jsme na localhostu
         $host = substr($httpRequest->url->host, 0, strripos($httpRequest->url->host, '.localhost'));
         // musíme si doménu osamostatnit od .localhost
         $host = str_replace('_', '.', $host);
         // na lokálu mám místo teček podtržení
     } else {
         // jsme na produkci
         $host = $httpRequest->url->host;
     }
     // zkusím zda je soubor již v cache
     if (is_file(WEB_DIR . '/' . $host . '/cache' . $httpRequest->url->path)) {
         return new Nette\Application\Request('Frontend', 'POST', array('action' => 'cache', 'file' => WEB_DIR . '/' . $host . '/cache' . $httpRequest->url->path));
     }
     /*
     if ($params = $this->doFilterParams($this->getRequestParams($appRequest), $appRequest, self::WAY_IN)) {
     	return $this->setRequestParams($appRequest, $params);
     }
     */
     // $pages = $this->context->createPages();
     $data = array('action' => 'default');
     return new Nette\Application\Request('Frontend', 'POST', $data);
 }
Ejemplo n.º 2
0
 /**
  * Maps HTTP request to a Request object.
  *
  * @return Request|NULL
  * @override
  */
 public function match(IRequest $httpRequest)
 {
     if ($this->isMobile($httpRequest)) {
         return parent::match($httpRequest);
     } else {
         return NULL;
     }
 }
Ejemplo n.º 3
0
 /**
  * @param \Nette\Http\IRequest $httpRequest
  * @return \Nette\Application\Request|null
  */
 public function match(IRequest $httpRequest)
 {
     if (($appRequest = parent::match($httpRequest)) === null) {
         return null;
     }
     $appRequest->setPresenterName(self::SUBMODULE_NAME . ':' . $appRequest->getPresenterName() . (substr_count($appRequest->getPresenterName(), ':') === 0 ? ':' . self::DEFAULT_PRESENTER : ''));
     return $appRequest;
 }
Ejemplo n.º 4
0
 /**
  * Tries to match request
  *
  * @param \Nette\Http\IRequest $httpRequest
  *
  * @return \Nette\Application\Request|NULL
  */
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     foreach ($this->methods as $method) {
         // method is not matched, return null
         if ($httpRequest->isMethod($method)) {
             return parent::match($httpRequest);
         }
     }
     return null;
 }
Ejemplo n.º 5
0
 /**
  * @param \Nette\Http\IRequest
  * @return \Nette\Application\Request|NULL
  */
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     $appRequest = parent::match($httpRequest);
     if (!$appRequest) {
         return $appRequest;
     }
     if ($params = $this->doFilterParams($this->getRequestParams($appRequest), $appRequest, self::WAY_IN)) {
         return $this->setRequestParams($appRequest, $params);
     }
     return NULL;
 }
Ejemplo n.º 6
0
 public function match(Nette\Http\IRequest $httpRequest)
 {
     $appRequest = parent::match($httpRequest);
     if (empty($appRequest->parameters)) {
         return null;
     }
     if (!$this->articleManager->getArticleUrl($appRequest->parameters['url'])) {
         return null;
     }
     return $appRequest;
 }
Ejemplo n.º 7
0
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     $request = parent::match($httpRequest);
     if (isset($request->parameters['nice_url_segment'])) {
         if (array_key_exists($request->parameters['nice_url_segment'], $this->redirections)) {
             $request->setPresenterName('Front:Redirections');
             $request->setParameters(array('presenter' => 'Redirections', 'action' => 'Default', 'id' => $this->redirections[$request->parameters['nice_url_segment']]));
             return $request;
         }
     }
     return NULL;
 }
Ejemplo n.º 8
0
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     $httpMethod = $httpRequest->getMethod();
     $flags = $this->getFlags();
     if (($flags & self::RESTFUL) == self::RESTFUL) {
         $presenterRequest = parent::match($httpRequest);
         if ($presenterRequest != NULL) {
             switch ($httpMethod) {
                 case 'GET':
                     $action = 'default';
                     break;
                 case 'POST':
                     $action = 'create';
                     break;
                 case 'PUT':
                     $action = 'update';
                     break;
                 case 'PATCH':
                     $action = 'update';
                     break;
                 case 'DELETE':
                     $action = 'delete';
                     break;
                 default:
                     $action = 'default';
             }
             $params = $presenterRequest->getParameters();
             $params['action'] = $action;
             $presenterRequest->setParameters($params);
             return $presenterRequest;
         } else {
             return NULL;
         }
     }
     if (($flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') {
         return NULL;
     }
     if (($flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') {
         return NULL;
     }
     if (($flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') {
         return NULL;
     }
     if (($flags & self::METHOD_PATCH) == self::METHOD_PATCH && $httpMethod != 'PATCH') {
         return NULL;
     }
     if (($flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') {
         return NULL;
     }
     return parent::match($httpRequest);
 }
Ejemplo n.º 9
0
 public function match(Nette\Http\IRequest $httpRequest)
 {
     if (($request = parent::match($httpRequest)) === NULL) {
         return;
     }
     if (!$this->locale) {
         $parameters = $request->getParameters();
         if (isset($parameters['contentLang']) && $parameters['contentLang'] !== $this->defaultLanguage) {
             $this->pageListener->setLocale($this->languageRepository->findOneBy(array('alias' => $parameters['contentLang'])));
         }
         $this->locale = TRUE;
     }
     return $request;
 }
Ejemplo n.º 10
0
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     $httpMethod = $httpRequest->getMethod();
     if (($this->flags & self::RESTFUL) == self::RESTFUL) {
         $presenterRequest = parent::match($httpRequest);
         if ($presenterRequest != NULL) {
             $payload = null;
             $payloadParameters = array();
             switch ($httpMethod) {
                 case 'GET':
                     $action = 'default';
                     break;
                 case 'POST':
                     $action = 'create';
                     break;
                 case 'PUT':
                     $action = 'update';
                     $payload = file_get_contents("php://input");
                     parse_str($payload, $payloadParameters);
                     break;
                 case 'DELETE':
                     $action = 'delete';
                     break;
                 default:
                     $action = 'default';
             }
             $parameters = $presenterRequest->getParameters();
             $parameters['action'] = $action;
             $parameters['payload'] = $payload;
             $parameters = array_merge($parameters, $payloadParameters);
             $presenterRequest->setParameters($parameters);
             return $presenterRequest;
         } else {
             return NULL;
         }
     }
     if (($this->flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') {
         return NULL;
     }
     if (($this->flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') {
         return NULL;
     }
     if (($this->flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') {
         return NULL;
     }
     if (($this->flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') {
         return NULL;
     }
     return parent::match($httpRequest);
 }
Ejemplo n.º 11
0
 public function match(IRequest $httpRequest)
 {
     $httpMethod = $httpRequest->getMethod();
     if (($this->flags & self::RESTFUL) == self::RESTFUL) {
         $presenterRequest = parent::match($httpRequest);
         if ($presenterRequest != NULL) {
             switch ($httpMethod) {
                 //see: http://en.wikipedia.org/wiki/Representational_state_transfer#RESTful_web_APIs
                 case 'GET':
                     $action = 'get';
                     break;
                 case 'POST':
                     $action = 'post';
                     break;
                     //CREATE
                 //CREATE
                 case 'PUT':
                     $action = 'put';
                     break;
                     //UPDATE
                 //UPDATE
                 case 'DELETE':
                     $action = 'delete';
                     break;
                 default:
                     $action = 'get';
             }
             $params = $presenterRequest->getParameters();
             $params['action'] = $action;
             $presenterRequest->setParameters($params);
             return $presenterRequest;
         } else {
             return NULL;
         }
     }
     if (($this->flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') {
         return NULL;
     }
     if (($this->flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') {
         return NULL;
     }
     if (($this->flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') {
         return NULL;
     }
     if (($this->flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') {
         return NULL;
     }
     return parent::match($httpRequest);
 }
Ejemplo n.º 12
0
 /**
  * @param IRequest $httpRequest
  * @return \Nette\Application\Request|NULL
  */
 public function match(IRequest $httpRequest)
 {
     $appRequest = parent::match($httpRequest);
     if (!isset($appRequest->parameters['id'])) {
         return NULL;
     }
     $id = $appRequest->parameters['id'];
     if (!is_numeric($id)) {
         $article = NULL;
         try {
             $article = $this->articlesRepository->getOneWhere(['url' => $id]);
         } catch (BadRequestException $exc) {
             return NULL;
         }
         $appRequest->parameters['id'] = $article->id();
     }
     return $appRequest;
 }
Ejemplo n.º 13
0
 public function match(\Nette\Http\IRequest $request)
 {
     /**
      * @var $appRequest \Nette\Application\Request
      */
     $appRequest = parent::match($request);
     if (!isset($appRequest->parameters['id'])) {
         return NULL;
     }
     if (!is_numeric($appRequest->parameters['id'])) {
         $page = $this->database->query("SELECT contentId FROM route WHERE url = ?", $appRequest->parameters['id'])->fetch();
         if ($page == NULL) {
             return NULL;
         }
         $appRequest->parameters['id'] = $page->contentId;
     }
     return $appRequest;
 }
Ejemplo n.º 14
0
	/**
	 * Maps HTTP request to a PresenterRequest object.
	 * @param  Nette\Http\IRequest
	 * @return \Nette\Application\Request|NULL
	 * @throws \Nette\InvalidStateException
	 */
	public function match(\Nette\Http\IRequest $httpRequest)
	{
		if (($presenterRequest = parent::match($httpRequest)) === NULL) {
			return NULL;
		}

		$params = $presenterRequest->params;
		if (!isset($params[static::FILE_KEY])) {
			throw new \Nette\InvalidStateException('Missing file in route definition.');
		}

		// Find file
		$file = $this->getFile($params[static::FILE_KEY]);
		if (!$file) {
			return NULL;
		}
		$params[static::FILE_KEY] = $file;

		$presenterRequest->params = $params;
		return $presenterRequest;
	}
Ejemplo n.º 15
0
 public function match(IRequest $httpRequest)
 {
     $appRequest = parent::match($httpRequest);
     if (!$appRequest) {
         return NULL;
     }
     $method = $httpRequest->getMethod();
     if (!in_array($method, array('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'))) {
         return NULL;
     }
     if ($this->flags & self::RESTFUL) {
         $action = self::$restDictionary[$method];
         $params = $appRequest->getParameters();
         $params['action'] = $action;
         $appRequest->setParameters($params);
         return $appRequest;
     }
     if (($this->flags & self::METHOD_GET) === self::METHOD_GET && $method !== 'GET') {
         return NULL;
     }
     if (($this->flags & self::METHOD_POST) === self::METHOD_POST && $method !== 'POST') {
         return NULL;
     }
     if (($this->flags & self::METHOD_PUT) === self::METHOD_PUT && $method !== 'PUT') {
         return NULL;
     }
     if (($this->flags & self::METHOD_DELETE) === self::METHOD_DELETE && $method !== 'DELETE') {
         return NULL;
     }
     if (($this->flags & self::METHOD_PATCH) === self::METHOD_PATCH && $method !== 'PATCH') {
         return NULL;
     }
     if (($this->flags & self::METHOD_OPTIONS) === self::METHOD_OPTIONS && $method !== 'OPTIONS') {
         return NULL;
     }
     return $appRequest;
 }
Ejemplo n.º 16
0
 /**
  * Maps HTTP request to a Request object.
  *
  * @param  Nette\Http\IRequest
  * @return \Nette\Application\Request|NULL
  */
 public function match(\Nette\Http\IRequest $httpRequest)
 {
     if (($request = parent::match($httpRequest)) === NULL || !array_key_exists('slug', $request->parameters)) {
         return NULL;
     }
     if (!$this->checkConnectionFactory->invoke()) {
         return NULL;
     }
     $parameters = $request->parameters;
     if (!$this->_defaultLang && count($this->languages) > 1) {
         if (!isset($parameters['lang'])) {
             $parameters['lang'] = $this->defaultLanguage;
         }
         if ($parameters['lang'] !== $this->defaultLanguage) {
             $this->container->cms->pageListener->setLocale($parameters['lang']);
         }
         $this->_defaultLang = TRUE;
     }
     $key = array($httpRequest->getUrl()->getAbsoluteUrl(), $parameters['lang'], isset($parameters['domain']) ? $parameters['domain'] : NULL);
     $data = $this->cache->load($key);
     if ($data) {
         return $this->modifyMatchRequest($request, $data[0], $data[1], $data[2], $data[3], $data[4], $parameters);
     }
     if (count($this->languages) > 1) {
         try {
             $tr = $this->container->entityManager->getRepository('CmsModule\\Content\\Entities\\RouteTranslationEntity')->createQueryBuilder('a')->leftJoin('a.language', 'l')->andWhere('a.url = :url')->setParameter('url', $parameters['slug'])->andWhere('l.alias = :lang')->setParameter('lang', $parameters['lang'])->getQuery()->getSingleResult();
         } catch (NoResultException $e) {
         }
         if (!isset($tr) || !$tr) {
             $qb = $this->getRouteRepository()->createQueryBuilder('a')->leftJoin('a.language', 'p')->andWhere('a.language IS NULL OR p.alias = :lang')->setParameter('lang', $parameters['lang'])->andWhere('a.url = :url')->setParameter('url', $parameters['slug']);
         } else {
             $qb = $this->getRouteRepository()->createQueryBuilder('a')->leftJoin('a.translations', 't')->where('t.id = :id')->setParameter('id', $tr->id);
         }
     } else {
         $qb = $this->getRouteRepository()->createQueryBuilder('a')->where('a.url = :url')->setParameter('url', $parameters['slug']);
     }
     $domain = isset($parameters['domain']) && $parameters['domain'] ? $this->getDomainRepository()->findOneBy(array('domain' => $parameters['domain'])) : NULL;
     if ($domain) {
         $qb->andWhere('a.domain = :domain')->setParameter('domain', $domain->id);
     } else {
         $qb->andWhere('a.domain IS NULL');
     }
     try {
         $route = $qb->getQuery()->getSingleResult();
     } catch (NoResultException $e) {
         return NULL;
     }
     $this->cache->save($key, array($route->id, $route->page->id, $route->type, $domain ? $domain->domain : NULL, $route->params), array(Cache::TAGS => array(RouteEntity::CACHE)));
     return $this->modifyMatchRequest($request, $route, $route->page, $route->type, $domain, $route->params, $parameters);
 }
Ejemplo n.º 17
0
	/**
	 * Maps HTTP request to a PresenterRequest object.
	 * @param \Nette\Http\IRequest
	 * @return \Nette\Application\Request|NULL
	 * @throws \Nette\InvalidStateException
	 */
	public function match(\Nette\Http\IRequest $httpRequest)
	{
		if (($presenterRequest = parent::match($httpRequest)) === NULL) {
			return NULL;
		}

		$params = $presenterRequest->params;
		if (!isset($params[static::FORMAT_KEY])) {
			throw new \Nette\InvalidStateException('Missing format in route definition.');
		}
		if (!isset($params[static::IMAGE_KEY])) {
			throw new \Nette\InvalidStateException('Missing id in route definition.');
		}

		// Find image
		$image = $this->getImage($params[static::IMAGE_KEY]);
		if (!$image) {
			return NULL;
		}
		$params[static::IMAGE_KEY] = $image;

		// Find format
		$format = $this->getFormat($params[static::FORMAT_KEY]);
		if (!$format) {
			return NULL;
		}
		$params[static::FORMAT_KEY] = $format;

		// Set path parameter
		$params[static::PATH_PARAMETER] = $httpRequest->url->path;

		$presenterRequest->params = $params;
		return $presenterRequest;
	}
Ejemplo n.º 18
0
 /**
  * @param Http\IRequest $httpRequest
  * @return Application\Request|NULL
  */
 public function match(Http\IRequest $httpRequest)
 {
     $appRequest = parent::match($httpRequest);
     if (!$appRequest) {
         return NULL;
     }
     // Check requested method
     $methodFlag = $this->getMethod($httpRequest);
     if (!$this->isMethod($methodFlag)) {
         return NULL;
     }
     // If there is action dictionary, set method
     if ($this->actionDictionary) {
         $parameters = $appRequest->getParameters();
         $parameters['action'] = $this->actionDictionary[$methodFlag];
         $parameters['action'] = self::formatActionName($this->actionDictionary[$methodFlag], $parameters);
         $appRequest->setParameters($parameters);
     }
     return $appRequest;
 }