/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }