3

現在、ブートストラップ中にWebサイトのナビゲーションを初期化しています。1から3のナビゲーションオブジェクトを初期化します。ほとんどのリクエストにはNavigationオブジェクトが必要ですが、必要ないものもあります。ダウンロードおよびJSONリクエスト用に生成されたファイルを含まないもの。ナビゲーションオブジェクトを使用しないときに生成する作業はしたくありません。

私は2つの異なる可能な解決策のタイプを見ます:

  1. ナビゲーションを必要としないルートを指定し、ブートストラップ中にそれらを確認します
  2. ナビゲーションを遅延ロードする

許容できる解決策として、私はこの問題を解決するための詳細を探しています。リストしていないソリューションタイプにも興味があります。


解決

FinalFormの回答を受け入れていますが、探していた詳細がありませんでした。これが私が取ったステップです:

  1. ナビゲーションオブジェクトごとに、データベースモデルクラスに1つの遅延読み込み関数を作成しましたNavigation
  2. 対応するブートストラップコードを各関数に移動しました
  3. ブートストラップに私のNavigationモデルのインスタンスを追加しましたZend_Registry
  4. のようにView参照を変更しました$this->siteNavZend_Registry::get('nav')->getSiteNav()
4

1 に答える 1

2

ずっとレイジーロードだな。

  • すべてのページがナビゲーションを必要とするわけではないため、ブートストラップでナビゲーションを初期化すると、アプリケーション全体にオーバーヘッドが追加されるように見えます。

  • Specify routes that don't need the navigationぎこちない音でマッキング。

Zend ライブラリを拡張して、コア コントローラを拡張するなど、独自の種類のバージョン ライブラリを作成する必要があります。その拡張機能で、それを使用して、ナビゲーションを構築するメソッドを追加します。つまり、実際のアプリケーションを拡張ライブラリ クラスからサブクラス化します。

またはcustom view helpers、ナビゲーションを開発するために作成します。

于 2011-07-12T14:25:07.087 に答える