context = $context; } public function match($rawPathinfo) { $allow = array(); $pathinfo = rawurldecode($rawPathinfo); $trimmedPathinfo = rtrim($pathinfo, '/'); $context = $this->context; $request = $this->request ?: $this->createRequest($pathinfo); $requestMethod = $canonicalMethod = $context->getMethod(); if ('HEAD' === $requestMethod) { $canonicalMethod = 'GET'; } if (0 === strpos($pathinfo, '/trailing/simple')) { // simple_trailing_slash_no_methods if ('/trailing/simple/no-methods' === $trimmedPathinfo) { $ret = array('_route' => 'simple_trailing_slash_no_methods'); if ('/' === substr($pathinfo, -1)) { // no-op } elseif ('GET' !== $canonicalMethod) { goto not_simple_trailing_slash_no_methods; } else { return array_replace($ret, $this->redirect($rawPathinfo.'/', 'simple_trailing_slash_no_methods')); } return $ret; } not_simple_trailing_slash_no_methods: // simple_trailing_slash_GET_method if ('/trailing/simple/get-method' === $trimmedPathinfo) { $ret = array('_route' => 'simple_trailing_slash_GET_method'); if ('/' === substr($pathinfo, -1)) { // no-op } elseif ('GET' !== $canonicalMethod) { goto not_simple_trailing_slash_GET_method; } else { return array_replace($ret, $this->redirect($rawPathinfo.'/', 'simple_trailing_slash_GET_method')); } if (!in_array($canonicalMethod, array('GET'))) { $allow = array_merge($allow, array('GET')); goto not_simple_trailing_slash_GET_method; } return $ret; } not_simple_trailing_slash_GET_method: // simple_trailing_slash_HEAD_method if ('/trailing/simple/head-method/' === $pathinfo) { $ret = array('_route' => 'simple_trailing_slash_HEAD_method'); if (!in_array($requestMethod, array('HEAD'))) { $allow = array_merge($allow, array('HEAD')); goto not_simple_trailing_slash_HEAD_method; } return $ret; } not_simple_trailing_slash_HEAD_method: // simple_trailing_slash_POST_method if ('/trailing/simple/post-method/' === $pathinfo) { $ret = array('_route' => 'simple_trailing_slash_POST_method'); if (!in_array($requestMethod, array('POST'))) { $allow = array_merge($allow, array('POST')); goto not_simple_trailing_slash_POST_method; } return $ret; } not_simple_trailing_slash_POST_method: } elseif (0 === strpos($pathinfo, '/trailing/regex')) { // regex_trailing_slash_no_methods if (0 === strpos($pathinfo, '/trailing/regex/no-methods') && preg_match('#^/trailing/regex/no\\-methods/(?P[^/]++)/?$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_trailing_slash_no_methods')), array ()); if ('/' === substr($pathinfo, -1)) { // no-op } elseif ('GET' !== $canonicalMethod) { goto not_regex_trailing_slash_no_methods; } else { return array_replace($ret, $this->redirect($rawPathinfo.'/', 'regex_trailing_slash_no_methods')); } return $ret; } not_regex_trailing_slash_no_methods: // regex_trailing_slash_GET_method if (0 === strpos($pathinfo, '/trailing/regex/get-method') && preg_match('#^/trailing/regex/get\\-method/(?P[^/]++)/?$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_trailing_slash_GET_method')), array ()); if ('/' === substr($pathinfo, -1)) { // no-op } elseif ('GET' !== $canonicalMethod) { goto not_regex_trailing_slash_GET_method; } else { return array_replace($ret, $this->redirect($rawPathinfo.'/', 'regex_trailing_slash_GET_method')); } if (!in_array($canonicalMethod, array('GET'))) { $allow = array_merge($allow, array('GET')); goto not_regex_trailing_slash_GET_method; } return $ret; } not_regex_trailing_slash_GET_method: // regex_trailing_slash_HEAD_method if (0 === strpos($pathinfo, '/trailing/regex/head-method') && preg_match('#^/trailing/regex/head\\-method/(?P[^/]++)/$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_trailing_slash_HEAD_method')), array ()); if (!in_array($requestMethod, array('HEAD'))) { $allow = array_merge($allow, array('HEAD')); goto not_regex_trailing_slash_HEAD_method; } return $ret; } not_regex_trailing_slash_HEAD_method: // regex_trailing_slash_POST_method if (0 === strpos($pathinfo, '/trailing/regex/post-method') && preg_match('#^/trailing/regex/post\\-method/(?P[^/]++)/$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_trailing_slash_POST_method')), array ()); if (!in_array($requestMethod, array('POST'))) { $allow = array_merge($allow, array('POST')); goto not_regex_trailing_slash_POST_method; } return $ret; } not_regex_trailing_slash_POST_method: } elseif (0 === strpos($pathinfo, '/not-trailing/simple')) { // simple_not_trailing_slash_no_methods if ('/not-trailing/simple/no-methods' === $pathinfo) { return array('_route' => 'simple_not_trailing_slash_no_methods'); } // simple_not_trailing_slash_GET_method if ('/not-trailing/simple/get-method' === $pathinfo) { $ret = array('_route' => 'simple_not_trailing_slash_GET_method'); if (!in_array($canonicalMethod, array('GET'))) { $allow = array_merge($allow, array('GET')); goto not_simple_not_trailing_slash_GET_method; } return $ret; } not_simple_not_trailing_slash_GET_method: // simple_not_trailing_slash_HEAD_method if ('/not-trailing/simple/head-method' === $pathinfo) { $ret = array('_route' => 'simple_not_trailing_slash_HEAD_method'); if (!in_array($requestMethod, array('HEAD'))) { $allow = array_merge($allow, array('HEAD')); goto not_simple_not_trailing_slash_HEAD_method; } return $ret; } not_simple_not_trailing_slash_HEAD_method: // simple_not_trailing_slash_POST_method if ('/not-trailing/simple/post-method' === $pathinfo) { $ret = array('_route' => 'simple_not_trailing_slash_POST_method'); if (!in_array($requestMethod, array('POST'))) { $allow = array_merge($allow, array('POST')); goto not_simple_not_trailing_slash_POST_method; } return $ret; } not_simple_not_trailing_slash_POST_method: } elseif (0 === strpos($pathinfo, '/not-trailing/regex')) { // regex_not_trailing_slash_no_methods if (0 === strpos($pathinfo, '/not-trailing/regex/no-methods') && preg_match('#^/not\\-trailing/regex/no\\-methods/(?P[^/]++)$#sD', $pathinfo, $matches)) { return $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_not_trailing_slash_no_methods')), array ()); } // regex_not_trailing_slash_GET_method if (0 === strpos($pathinfo, '/not-trailing/regex/get-method') && preg_match('#^/not\\-trailing/regex/get\\-method/(?P[^/]++)$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_not_trailing_slash_GET_method')), array ()); if (!in_array($canonicalMethod, array('GET'))) { $allow = array_merge($allow, array('GET')); goto not_regex_not_trailing_slash_GET_method; } return $ret; } not_regex_not_trailing_slash_GET_method: // regex_not_trailing_slash_HEAD_method if (0 === strpos($pathinfo, '/not-trailing/regex/head-method') && preg_match('#^/not\\-trailing/regex/head\\-method/(?P[^/]++)$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_not_trailing_slash_HEAD_method')), array ()); if (!in_array($requestMethod, array('HEAD'))) { $allow = array_merge($allow, array('HEAD')); goto not_regex_not_trailing_slash_HEAD_method; } return $ret; } not_regex_not_trailing_slash_HEAD_method: // regex_not_trailing_slash_POST_method if (0 === strpos($pathinfo, '/not-trailing/regex/post-method') && preg_match('#^/not\\-trailing/regex/post\\-method/(?P[^/]++)$#sD', $pathinfo, $matches)) { $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'regex_not_trailing_slash_POST_method')), array ()); if (!in_array($requestMethod, array('POST'))) { $allow = array_merge($allow, array('POST')); goto not_regex_not_trailing_slash_POST_method; } return $ret; } not_regex_not_trailing_slash_POST_method: } if ('/' === $pathinfo && !$allow) { throw new Symfony\Component\Routing\Exception\NoConfigurationException(); } throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException(); } } __halt_compiler();----SIGNATURE:----o/XIaWyjAUr3K2R1AfSpA6QetuBGtAivw2clsO0HRaFyJETzXTGw4yuiafRugzDc17A3CruLozcnopnyGQzHVDct1u6lThMU9P2L/a6BofRcMlWo7yfEK12kGI1AWBkltYE+1Ky0NRIvoGiWipwLzOL0fFKG9hS+fqdBFuz8KUrbov64XUSK75a+FWbn+af2IxRN23Z3A9vbN1fq40oEpLx1YxgoSktNa9eYyuYP1ouBs9ycB5Xg7mqD0LEG6ThJriP77l8dvtKOZTTextAQWR1Bx2iMjemsMrcxj3bi91cTC7ndM7m/P4nyJFOVamtrCTN1OuUUgRKpNiOPMjgJ43kc+G0XlFD4GNquNOtbX1Wc1DoJ9LlA9wXywLXKhpkNva5iOt9qdHeyDkqeOfhg2H3FrmiNRStflbP9Hbh7IEwJSYfNQOYraCqv43cwIHmCrlG6tytQLxZhrOU/a55Frc82VyRXfb7Gk2fjVNCqgxvjNfcfjzVjZSp+CfyCs2V0curPipfojMauQ4a+pYG0kkIt1ZogcniloxFv+IwAVCW1YbY1u0nId5DJeHFlv2ZG4hpnp7Xebs3LSCv5lTPzNpV03j5YONIsyyLuvkbMYQq+STTuG4qYymx+AThWTxR3/S2N2sSiNjNDnIHD52yJMXuhXPdvQnP8uyqMysVf1/A=----ATTACHMENT:----NjI1Mjg1Mzc5MTg2MjY4NSA2ODA5NDQ5NjQxMjM5NzgxIDExMDY0MzUyMTUwMzA3Mzg=