123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\PageCache\Model\Cache;
- use Magento\Framework\UrlInterface;
- use Magento\Framework\App\DeploymentConfig;
- use Magento\Framework\Config\ConfigOptionsListConstants;
- use Magento\Framework\App\RequestInterface;
- use Zend\Uri\Uri;
- use Zend\Uri\UriFactory;
- class Server
- {
- /**
- * @var UrlInterface
- */
- protected $urlBuilder;
- /**
- * @var DeploymentConfig
- */
- private $config;
- /**
- * @var RequestInterface
- */
- private $request;
- const DEFAULT_PORT = 80;
- /**
- * Constructor
- *
- * @param UrlInterface $urlBuilder
- * @param DeploymentConfig $config
- * @param RequestInterface $request
- */
- public function __construct(
- UrlInterface $urlBuilder,
- DeploymentConfig $config,
- RequestInterface $request
- ) {
- $this->urlBuilder = $urlBuilder;
- $this->config = $config;
- $this->request = $request;
- }
- /**
- * Get cache servers' Uris
- *
- * @return Uri[]
- */
- public function getUris()
- {
- $servers = [];
- $configuredHosts = $this->config->get(ConfigOptionsListConstants::CONFIG_PATH_CACHE_HOSTS);
- if (is_array($configuredHosts)) {
- foreach ($configuredHosts as $host) {
- $servers[] = UriFactory::factory('')
- ->setHost($host['host'])
- ->setPort(isset($host['port']) ? $host['port'] : self::DEFAULT_PORT)
- ;
- }
- } elseif ($this->request->getHttpHost()) {
- $servers[] = UriFactory::factory('')->setHost($this->request->getHttpHost())->setPort(self::DEFAULT_PORT);
- } else {
- $servers[] = UriFactory::factory($this->urlBuilder->getUrl('*', ['_nosid' => true]));
- }
- foreach (array_keys($servers) as $key) {
- $servers[$key]->setScheme('http')
- ->setPath('/')
- ->setQuery(null);
- }
- return $servers;
- }
- }
|