$segment) { if ($segment === '' && $n !== 0) { throw new BadRouteException('Empty optional part'); } $currentRoute .= $segment; $routeDatas[] = $this->parsePlaceholders($currentRoute); } return $routeDatas; } /** * Parses a route string that does not contain optional segments. * * @param string * @return mixed[] */ private function parsePlaceholders($route) { if (!preg_match_all( '~' . self::VARIABLE_REGEX . '~x', $route, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER )) { return [$route]; } $offset = 0; $routeData = []; foreach ($matches as $set) { if ($set[0][1] > $offset) { $routeData[] = substr($route, $offset, $set[0][1] - $offset); } $routeData[] = [ $set[1][0], isset($set[2]) ? trim($set[2][0]) : self::DEFAULT_DISPATCH_REGEX ]; $offset = $set[0][1] + strlen($set[0][0]); } if ($offset !== strlen($route)) { $routeData[] = substr($route, $offset); } return $routeData; } } __halt_compiler();----SIGNATURE:----g19gPZkc5wkR0et7qeQ2sS1kWc1zuQuAHvCcGbBr2MIQf8OdbTmvpm1s41pqdVMhrmeY1X9YaJ73cyM2lsmulZn0anbRVbTIBESovDAsMcFUpeY2CbhSziDwuOHFhLnU/niCi5ieoXr9KPEmCmjnxqR+AtlxvqS36x9KIqnpLfugHq7AUsrFTrttOhnWtZ/1pGUv1caJB/syCqxqtYHmCSM/4dM7deX6hsUu/RAccdM8+yp9QE0DPO8u1+HTs5yRBzZTnvI17n3BEMFukvaf5HNIQXJLKzUEUb0mfbCU0mSIYIcxGfdDA5bQFgcE7Iw90CAxrfBd361xMBQsUcxQ6v8I5YYQgXzf+hpzaDi89SgXapnJZ02/Vs0b15/8BT8RHwK1L3imlD9+oiYeWfHoanS5HBrr5IomCxz8CQ+DXyv1wwPNhJdGGOW5ZSUA1SZ79PJYeK2gVnX+odVdvr7xe1hjQloyiawkeyFCSPcF4jsMhTuiCjICZS/xwS+WiIGHCgEN2QA98YvDt5sJ6mn2awV/ih76xhgqZp7UR4H4E0t7tbHBpVtwY0HOSYwg4CNlzHTYkMr7dkTj+BnCF5yDs7DVHSv8r45+dYw2VNIe+yidueoQ1Cv8kjlPRDzDrII5UymqbFrRNd7wBTOE/kkR+/fZbm1T9S9bviyhP60kYMw=----ATTACHMENT:----NDIyMjEwOTY4OTc0NDM1MiA4NDcwNjQ2MDUyNzcwODMzIDk1MzUzNTU3NzY2MjQ1NDc=