Example #1
0
 /**
  * Constructs a SiteUrl object from request variables
  *
  * @return SiteUrl
  */
 static function import($scheme, $host, $port, $uri, $baseHost = null, $baseUri = '/')
 {
     $url = new self();
     if ($baseHost) {
         $url->setBaseHost($baseHost);
     }
     $url->setBasePath($baseUri);
     $url->setScheme($scheme)->setHost($host)->setPort($port);
     //get the URI itself
     if (!preg_match('/^https?:\\/\\//', $uri)) {
         $uri = '/' . ltrim($uri, '/');
     }
     $parts = parse_url($uri);
     if (isset($parts['path'])) {
         $path = urldecode($parts['path']);
         $url->setPath($path);
     }
     if (isset($parts['query'])) {
         $newQuery = $query = array();
         parse_str($parts['query'], $query);
         foreach ($query as $k => $v) {
             $newQuery[urldecode($k)] = is_array($v) ? $v : urldecode($v);
         }
         $url->setQuery($newQuery);
     }
     return $url;
 }
Example #2
0
 /**
  * Constructs a SiteUrl object from request variables
  *
  * @param HttpUrlDictionary $dictionary dictionary of values to be used in building the SiteUrl
  * @param string $baseHost optional host to be treated as base host
  * @param string $baseUri optional uri to be treated as base uri
  *
  * @return SiteUrl
  */
 static function import(HttpUrlDictionary $dictionary, $baseHost = null, $baseUri = '/')
 {
     $url = new self();
     if ($baseHost) {
         $url->setBaseHost($baseHost);
     }
     $url->setBasePath($baseUri);
     $url->setScheme($dictionary->getField(HttpUrlDictionary::HTTPS) ? 'https' : 'http')->setHost($dictionary->getField(HttpUrlDictionary::HOST))->setPort($dictionary->getField(HttpUrlDictionary::PORT));
     //get the URI itself
     $uri = $dictionary->getField(HttpUrlDictionary::URI);
     if (!preg_match('/^https?:\\/\\//', $uri)) {
         $uri = '/' . ltrim($uri, '/');
     }
     $parts = parse_url($uri);
     if (isset($parts['path'])) {
         $path = urldecode($parts['path']);
         $url->setPath($path);
     }
     if (isset($parts['query'])) {
         $newQuery = $query = array();
         parse_str($parts['query'], $query);
         foreach ($query as $k => $v) {
             $newQuery[urldecode($k)] = is_array($v) ? $v : urldecode($v);
         }
         $url->setQuery($newQuery);
     }
     return $url;
 }
Example #3
0
 /**
  * Basic factory method to instantiate a new DirectorySync object with all the appropriate properties.
  *
  * @param           $path      The local path
  * @param Container $container The container you're syncing
  * @return DirectorySync
  */
 public static function factory($path, Container $container)
 {
     $transfer = new self();
     $transfer->setBasePath($path);
     $transfer->setContainer($container);
     $transfer->setRemoteFiles($container->objectList());
     return $transfer;
 }
Example #4
0
 /**
  * Creates and configure a empty manager instance via array options
  * @param array $config
  * @return \PHPLegends\Assets\Manager
  */
 public static function createEmptyFromConfig(array $config)
 {
     $manager = new self();
     if (isset($config['base_uri'])) {
         $manager->setBaseUri($config['base_uri']);
     }
     if (isset($config['path'])) {
         $manager->setBasePath($config['path']);
     }
     if (isset($config['path_aliases']) && is_array($config['path_aliases'])) {
         foreach ($config['path_aliases'] as $alias => $path) {
             $manager->addPathAlias($alias, $path);
         }
     }
     if (isset($config['compiled'])) {
         $manager->setCompileDirectory($config['compiled']);
     }
     if (isset($config['version'])) {
         $manager->setVersion($config['version']);
     }
     return $manager;
 }