Beispiel #1
0
 /**
  * Validate uri path against the request
  * @param \Exedra\Http\ServerRequest $request
  * @param string $path
  * @return array
  */
 public function validate(\Exedra\Http\ServerRequest $request, $path)
 {
     // print_r($query);die;
     foreach (array('method', 'path', 'ajax') as $key) {
         // if this parameter wasn't set, skip validation.
         if (!$this->hasProperty($key)) {
             continue;
         }
         switch ($key) {
             case 'method':
                 $value = $request->getMethod();
                 // return false because method doesn't exist.
                 if (!in_array(strtolower($value), $this->getProperty('method'))) {
                     return array('route' => false, 'parameter' => false, 'continue' => false);
                 }
                 break;
             case 'path':
                 $result = $this->validatePath($path);
                 if (!$result['matched']) {
                     return array('route' => false, 'parameter' => $result['parameter'], 'continue' => $result['continue']);
                 }
                 return array('route' => $this, 'parameter' => $result['parameter'], 'continue' => $result['continue']);
                 break;
             case 'ajax':
                 if ($request->isAjax() != $this->getProperty('ajax')) {
                     return array('route' => false, 'parameter' => false, 'continue' => false);
                 }
                 break;
         }
     }
     return array('route' => false, 'parameter' => array(), 'continue' => false);
 }