예제 #1
0
 /**
  * Initializer. Setup paths to temporary resources.
  *
  * @param mixed $params Params from the command line.
  *
  * @return void
  */
 public static function init($params)
 {
     self::$CACHES = array('system' => 'temp/cache');
     $modes = Core\Config()->modes();
     foreach ($modes as $mode) {
         Core\Config()->setMode($mode);
         $assetsPath = Core\Config()->paths('assets');
         $assets = Core\Utils::replaceFirstOccurrence(Core\Config()->paths('root'), '', $assetsPath['distribution']);
         if (file_exists($assetsPath['distribution'] . 'js')) {
             self::$CACHES['assets'][] = $assets . 'js';
         }
         if (file_exists($assetsPath['distribution'] . 'css')) {
             self::$CACHES['assets'][] = $assets . 'css';
         }
     }
 }
예제 #2
0
 /**
  * Parses a request query string.
  *
  * @param string $httpRequestString Request string.
  * @param Routes $routes            Request routing routes.
  *
  * @static
  * @uses Core\Utils::parseHttpRequestString()
  *
  * @return array
  */
 public static function parseRequestQueryString($httpRequestString, Routes $routes)
 {
     if (Core\Config()->mode('url')) {
         $httpRequestString = trim(Core\Utils::replaceFirstOccurrence(Core\Config()->mode('url'), '', $httpRequestString), Core\Config()->ROUTER['separator']);
     } else {
         $httpRequestString = trim($httpRequestString, Core\Config()->ROUTER['separator']);
     }
     $requestElements = Core\Utils::parseHttpRequestString($httpRequestString, Core\Config()->ROUTER['separator']);
     $route = $routes->extractRoute($requestElements);
     $routedUrl = $routes->toRoute($route['pattern']);
     $elements = $route['maps_to'];
     foreach ($route['maps_to'] as $role => $value) {
         if ('*' === $value) {
             $_element = array_search(Core\Config()->ROUTER['variables_prefix'] . $role, $routedUrl);
             $elements[$role] = isset($requestElements[$_element]) ? $requestElements[$_element] : null;
         }
     }
     return $elements;
 }