2

アプリケーションの XML サイトマップを再生成するコンソール アクションを作成しようとしています。ZF2 は、私が PHP の CLI バージョンを実行していることを検出しているため、コンソール ルーティングを使用していますが、Zend Navigation がサイトマップを構築しようとすると、「Route with name 'xxx' not found」というメッセージが表示されてチョークします。名前付きの HTTP ルートのいずれかについて知っている必要があります。通常の HTTP コントローラーを介して使用すると、同じコードが完全に正常に機能します。

コンソール アプリケーション内で HTTP ルートを機能させる方法はありますか?

4

1 に答える 1

9

「ルーター」は、リクエストに基づいて cli または http ルーターになります。ただし、サービス マネージャーに をロードするHttpRouterと、http 要求のルーターが明示的に取得されます。次に、デフォルト (つまり cli) の代わりに、このルーターがナビゲーションに挿入されていることを確認する必要があります。

問題は、ナビゲーション ビルダーの構成が非常に悪いことです。したがって、これをハックする必要があります。ここでは、コントローラー内で次の XML を生成するとします。

public function generateAction()
{
    $event  = $this->getEvent();
    $http   = $this->getServiceLocator()->get('HttpRouter);
    $router = $event->getRouter();

    $event->setRouter($http);

    // Get your navigation here
    // Build your XML here

    $event->setRouter($router);
}
于 2013-06-14T09:27:03.013 に答える