Я попытался найти способ получить базовый URL-адрес смешанного (http + CLI) приложения. CLI используется для выполнения некоторых регулярных уведомлений, где используется URL-адрес приложения.
Я пробовал это, но он возвращает только мне "http://"
print_r($this->getEvent()->getApplication()->getServiceManager()->get('ViewHelperManager')->get('ServerUrl')->__invoke());
Это не работает для консольных запросов. serverUrl
извлекается из объекта http-запроса (Zend\Http\Request
), поскольку консольный запрос заключен в объект консольного запроса (Zend\Console\Request
) эта информация не будет доступна для таких запросов.
Вы можете определить (жесткий код) URL-адрес в глобальной конфигурации или константу и использовать его вместо этого.
Например добавить host.config.local
подать в ваш application/config/autoload
папка:
<?php
return array(
'hostname' => 'http://www.example.com'
);
Теперь вы можете получить имя вашего хоста у менеджера сервиса:
$config = $serviceManager->get('config');
$hostName = $config['hostname'];
Других решений пока нет …