2009-07-15 111 views
1

我正在設計一個大型的web應用程序,我想最終能夠模塊化頁面上的不同元素。我正在使用Zend框架。尋找模塊網頁設計架構

我想創建獨立的模塊,我可以合併來創建一個頁面(例如聯繫方式,搜索框,最新博客評論...),Drupal如何做到這一點。這些模塊將是交互式的,因此它們顯然將包含表單和AJAX調用等。它們還需要一些視圖(用於呈現它們的外觀),並且還將使用JS和CSS文件。

我一直在尋找一個標準的方法來解決這個問題,但是那裏沒有太多具體的信息。有沒有人知道資源,書籍或網頁能夠提供對這種網頁設計的洞察力?

回答

1

老實說 - 我沒有在自己尋找這些信息的過程中發現許多資源,但是通過查看Zend Framework本身中的許多組件,特別是Zend_Form,您可以獲得很多靈感來找到解決方案。我剛剛構建了一個具有「Element」和「Decorator」層次結構的「Content」包。元素本身可以提供它們的默認裝飾器 - 並且你可以附加任意的裝飾器(例如將所有內容框包裝在<ul class='content'><li>.....</li>.....</ul>樣式顯示在一個頁面上)

「View Helpers」變得非常方便,可以讓你做你的「最新的博客評論」的風格箱通過調用它調用My_View_Helper_BlogComments::BlogComments()查看 - <?php echo $this->blogComments($article) ?>。我絕對認爲擁有自己的Zend_Form子類,以及可重複使用的組件碰巧形式(即與我們聯繫是一個「My_Form_ContactUs」)。

「部分」視圖助手也派上用場,以便將顯示的某些部分抽象爲其他可重用的文件<?php echo $this->partial('blog/_comments.phtml', null, array('article'=>$article)); ?> - 有一點更多用於部分的開銷,因爲它克隆了一個Zend_View。

處理JS/CSS包含得稍微複雜一些,我所做的是構建一個靜態類,您可以「需要」一個「庫」來檢查該庫是否已包含在內,否則 - 它會調用headScript()/ headLink()以包含所需的文件。 (用於像FCKEditor/Sortable/jQuery /等等)。最後看起來像:My_Script::requireLibrary('fckeditor');