Zend 框架 2 从控制台控制器获取 baseUrl

Zend framework 2 get baseUrl from console controller

我试图找到一种方法来获取混合 (http + CLI) 应用程序的基础 url。 CLI用来做一些常规的通知,这里使用了appurl.

我试过了,但是 returns 只有我 "http://"

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

这不适用于控制台请求。 serverUrl 是从 http 请求对象 (Zend\Http\Request), since a console request is wrapped in a console request object (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'];