0

私はかなり長い間個人的な cms プロジェクトに取り組んできました。その理由は、プロジェクトごとに新しい db レイヤーとコンポーネントを最初から作成するのに疲れていたからです。それで、zend フレームワークで小さな cms を開始することにしました。

menusこれで、ユーザー (将来のクライアント)がroutesなどを作成するサイトを管理し、データベースに格納されている実際のページを参照できるようにする必要があるポイントに到達しました。

私のプロジェクトでは、記事、コンテンツ、ギャラリーなどのモジュールがいくつかあります。記事とページを分離しました。記事の場合は非常に簡単だと思います。

したがって、ページはテーブルに保存され(htmlタグ付き)、ビューに挿入されます。ルートが含まれているため、作成されたメニューZend_Navigationとデータベース内の実際のページをリンクする方法について混乱し始めました。たとえば、次のようなメニューです。

about us           products           contact us
the team           productname 1      local
mission statement  productname 2      international

のような異なるルートで

/about-us          /products/list            /contact-us
/about-us/team     /products/productname1    /contact-us/local
/about-us/mission  /products/productname2    /contact-us/international

すべてのページが単一のテーブルからのものであり、PageController の単一のビューを介してレンダリングされることに注意してください。

具体的な質問はどこにありますか:

質問 1このアプローチはまったく機能しますか?
質問 1.1ない場合、より優れたデザインは何ですか?
質問 2 Zend_Navigation はどこに保存されますか? ユーザーがルートとメニューを変更するためのインターフェースが必要だからです。
質問 2.1 Zend_Config_Xml_Writer を使用してもよろしいですか?
質問 2.2はいの場合、それはベスト プラクティスですか?

4

1 に答える 1

1

私の経験から、ナビゲーションとページ/記事などを分離することは、エンドユーザーが理解して管理するのがはるかに簡単であることがよくあります。

zend_navigationとインターフェイスし、構成ファイルに保存するなど、より複雑なシステムを構築することもできますが、ナビゲーションを別のテーブル(つまり、ツリーパターン、1行あたり1行)でモデル化できる場合は、おそらく不要な複雑さのレイヤーが追加されます。アイテム-テキスト、タイトル、ルート、ターゲットウィンドウなどを設定します

CMSに関しては、ユーザーがページや製品などのルートを見つけるのを「支援」するためのコントロールを提供できます。

これは、アプリケーションによってビューヘルパーまたは共通パーシャルを使用してレンダリングできます。この時点で必要に応じて、データをzend_navigationオブジェクトに変換します。

TLDR; まとめ:

zend_navigationは、データのモデリングではなく、プレゼンテーションの目的でアプリケーションレベルで使用してください。

知っている

于 2011-10-18T08:16:25.757 に答える