初心者の Zend Framework 開発者が、Zend ルーティングの問題に対する簡単な解決策を見つけようとしています。あなたのプロの一人が手を貸してくれると確信しています。
75% の静的 HTML ページ コンテンツといくつかのコントローラーを含む Web サイト (Zend_Navigation を使用して Zend Framework で構築) があります。トップレベルのナビゲーションは Zend_Navigation に組み込まれており、パーシャルをループします。
私の仕事のおかげで、私はこれらの方針に沿って多くのサイト (多くの静的ページを含む) を構築しているので、これを正しくしたいと考えています。これらの静的ページ (多数あります) ごとにコントローラーとアクションを設定したくありません。また、Zend_Controller_Router_Route
すべての静的コンテンツを自動的にルーティングするソリューションを作成したいと考えていStaticController
ました。次のようなディレクトリからの URL のコントローラー/アクションのペアに基づいて、.phtml ページをインクルードまたはレンダリングします。/layouts/staticpages
SEO やさまざまな理由から、これらの静的ページの URL でコントローラーのペアリングを次のように表示したくありませ/static/page/page1
ん/section/page
。advantages/someadvantage
問題は次のとおりです。Zend_Controller_Router_Route
正しいルートを設定すると、使用しても機能しますが、Zend Navigation で何かひどいことが起こります... Zend_Navigaion は、オンザフライのコントローラー/アクションの切り替えでうまく機能しないためだと思います。
コード例:
$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route('advantages/:page/*',
array('controller' => 'static', 'action' => 'display', 'mode' => 'advantages',
'page' => 'index'));
$router->addRoute('advantages', $route);
これは、「利点」セクションのページを切り替えるジョブを十分に処理しますが、Zend_Navigation の自動コントローラー/アクション書き込みと「アクティブな」ノードの強調表示は、コントローラーが「静的」でアクションであると見なされるため、すべて台無しになります。 「ディスプレイ」です。
Zend_Navigation は基本的に と互換性がありZend_Controller_Router_Route
ませんか? この単一の静的ページコントローラーを実行したり、静的コンテンツを全面的に処理したりするより良い方法はありますか?