コード例 #1
0
ファイル: Router.php プロジェクト: c15k0/psfs
 /**
  * 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;
     }
 }
コード例 #2
0
ファイル: RouterHelper.php プロジェクト: c15k0/psfs
 /**
  * @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];
 }