/** * Parse slugs to create translations * * @param string $absoluteTranslationFileName */ private function generateSlugs($absoluteTranslationFileName) { $translations = I18nHelper::generateTranslationsFile($absoluteTranslationFileName); foreach ($this->routing as $key => &$info) { $keyParts = $key; if (FALSE === strstr("#|#", $key)) { $keyParts = explode("#|#", $key); $keyParts = array_key_exists(1, $keyParts) ? $keyParts[1] : ''; } $slug = RouterHelper::slugify($keyParts); if (NULL !== $slug && !array_key_exists($slug, $translations)) { $translations[$slug] = $key; file_put_contents($absoluteTranslationFileName, "\$translations[\"{$slug}\"] = _(\"{$slug}\");\n", FILE_APPEND); } $this->slugs[$slug] = $key; $info["slug"] = $slug; } }
/** * @param \ReflectionMethod $method * @param string $api * @return array */ public static function extractRouteInfo(\ReflectionMethod $method, $api = '') { $route = $info = null; $docComments = $method->getDocComment(); preg_match('/@route\\ (.*)\\n/i', $docComments, $sr); if (count($sr)) { list($regex, $default, $params) = RouterHelper::extractReflectionParams($sr, $method); if (strlen($api)) { $regex = str_replace('{__API__}', $api, $regex); $default = str_replace('{__API__}', $api, $default); } $httpMethod = RouterHelper::extractReflectionHttpMethod($docComments); if (self::checkCanAddRoute($regex, $api)) { $route = $httpMethod . "#|#" . $regex; $info = ["method" => $method->getName(), "params" => $params, "default" => $default, "visible" => RouterHelper::extractReflectionVisibility($docComments), "http" => $httpMethod, "cache" => RouterHelper::extractReflectionCacheability($docComments)]; } } return [$route, $info]; }