2016-06-27 20 views
0

混合(http + CLI)アプリケーションのベースURLを取得する方法を見つけようとしました。 CLIは、app urlが使用される定期的な通知を行うために使用されます。Zend Framework 2コンソールコントローラからbaseUrlを取得

私はこれを試してみましたが、それはこれがコンソール要求のために動作しないだけで"http://"

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

答えて

1

私を返します。 serverUrlは、コンソール要求がコンソール要求オブジェクト(Zend\Console\Request)にラップされているため、http要求オブジェクト(Zend\Http\Request)から抽出されます。この情報は、このような要求には使用できません。

URLをグローバル設定または定数で定義(ハードコード)し、代わりにこれを使用できます。

たとえば、あなたapplication/config/autoloadフォルダにhost.config.localファイルを追加します。

<?php 

return array(
    'hostname' => 'http://www.example.com' 
); 

は今、あなたはあなたのサービスマネージャからホスト名を取得することができます:

$config = $serviceManager->get('config'); 
$hostName = $config['hostname']; 
+0

はありません、私は、コンソールコントローラでこのコードを実行します。それは私に "http //"を返します – bksi

+0

@bksiコンソールリクエストはhttpリクエストではありません。ですから、コンソールリクエストを行うときに 'serverUrl'というものはありません。 – Wilt

+0

確かに。だから私の質問に戻る:どのようにコンソールのコントローラからアプリのURLを取得することができますか? – bksi

関連する問題