0

我试图找到一种方法来获取混合(http + CLI)应用程序的基本 url。CLI 用于执行一些常规通知,其中使用了 app url。

我试过这个,但它只返回我"http://"

print_r($this->getEvent()->getApplication()->getServiceManager()->get('ViewHelperManager')->get('ServerUrl')->__invoke());
4

1 回答 1

1

这不适用于控制台请求。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'];
于 2016-06-28T08:35:31.110 回答