[英]How to structure php that generates html
我有一個php文件和一堆HTML元素,其中包括:
基本上,我想知道將所有這些文件放入其中的正確方法。我想我應該在我的文件夾中有一個file.css,php就會將其吸收到內存中並放下標題信息。 是否應該將spacer元素另存為“ spacer.html”,PHP會將其一個副本粘貼到字符串中,並根據需要將其放入HTML中? 還是所有這些都應該在PHP中作為字符串常量存在?
對於動態的“模板”元素來說,這有點棘手,因為我不確定如何分隔HTML並讓其具有將參數放入其中的標記。
您應該研究MVC 。 現在流行的是CodeIgniter 。 這個想法是您采用這些HTML“模板”並創建(V)iews。 PHP使用(C)ontroller來指導用戶並調用(M)odels來獲取數據,然后將適當的變量發送給瀏覽器的(V)iews。
我注意到其他一些回答者(SP)提到了MVC。 MVC非常重要,因為它使您可以將業務邏輯與“視圖”顯示/ UI層分開,並將數據庫邏輯與業務邏輯分開。
像AlienWebguy一樣,我會推薦Code Igniter,但是還有許多其他適用於PHP的好的框架。
就您所詢問的而言,應該如何構造視圖層和業務邏輯。 如果我有諸如頁眉和頁腳之類的通用內容,我將其放入
view/include/header.php
和view/include/footer.php
頭文件通常包含<html>
標記,樣式表鏈接,任何常見的javascript腳本文件以及一個常見的頭(例如徽標和導航)。 頁腳文件通常包含版權信息,所有頁腳鏈接和</body></html>
。
通常,要有效創建視圖,您應該做的就是讓它們處理模型對象以顯示HTML,並在控制器層中完全不生成HTML。 例如
<table>
<?php
foreach ($users as $user) {
printf('<tr><td>%s</td><td>%s</td></tr>', $user->id, $user->user_name);
}
?>
</table>
這樣做可以避免在錯誤的“層”上散布問題,從而使事情變得更加整潔。
如果您不希望在視圖中直接編寫PHP,則可以做的另一件事是可以使用模板引擎。 代碼點火器包括對模板引擎的支持(但您不必使用)。
我通常建議使用一些不錯的php包括來解決這個問題。
從文件結構的角度來看,我可能會有一個index.php
文件-該文件(無需對#4中的模板有太多了解)將概述頁面。 您可以在header.html
頁面中調用,也可以將標題放在index.php
文件中。
最好將css文件命名為: style.css
(這很標准),您可以從頭文件中調用它。
不確定是否要這樣做,但是可以將HTML包含在.php
文件中。 您只需將文件命名為: index.php
,然后您的代碼可以是:
<p>This is HTML.</p>
<?php echo("This is PHP."); ?>
然后將它們混合在一起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.