我试图找到一种方法来获取混合(http + CLI)应用程序的基本 url。CLI 用于执行一些常规通知,其中使用了 app url。
我试过这个,但它只返回我"http://"
print_r($this->getEvent()->getApplication()->getServiceManager()->get('ViewHelperManager')->get('ServerUrl')->__invoke());
我试图找到一种方法来获取混合(http + CLI)应用程序的基本 url。CLI 用于执行一些常规通知,其中使用了 app 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'];