我使用Smarty和PHP語法創建網站;我學到了PHP代碼可以用在Smarty http://www.smarty.net/docs/en/language.function.php.tplSmarty和PHP語法在一個文檔中 - 推薦?
但是,這是一個好主意 - 將Smarty語法與PHP編碼混合?
我還在編輯文檔,沒有代碼尚未;所有的建議讚賞。
我使用Smarty和PHP語法創建網站;我學到了PHP代碼可以用在Smarty http://www.smarty.net/docs/en/language.function.php.tplSmarty和PHP語法在一個文檔中 - 推薦?
但是,這是一個好主意 - 將Smarty語法與PHP編碼混合?
我還在編輯文檔,沒有代碼尚未;所有的建議讚賞。
我不會混合使用這兩種語法:或者使用模板引擎,或者不要使用一種...但是不要混用兩者!
模板引擎的目標之一是爲html-guys學習它,而不是PHP--如果你混合使用,那麼爲了實現這一目標就會失敗。
如果你想在你的模板使用PHP,你可以PHP作爲模板引擎,畢竟:-)
重要的(無論您使用PHP或Smarty的或任何其他可能的模板引擎)是要記住,觀點(模板,你的情況)是展示,而不是邏輯。
您通常應該嘗試在PHP文件中完成所有服務器端工作,並將輸出分配給稍後在模板文件中使用。最好將業務和表示邏輯分開,並將它們分別保存在各自的區域中。
不,這不是一個好主意。 Smarty的本身並沒有給一個該死的 - 它編譯模板反正到PHP - 但你會拉你的頭髮,因爲你的網頁將成爲只寫麪條代碼一團糟。 (在那裏,這樣做)
Smarty旨在將您的模板從您的PHP代碼中提取出來,因此您可以將它們保持在一定程度上分開。如果你堅持再把它們混合起來 - 好吧,不妨,原始PHP的代碼,對吧? (提示:這是一個更糟糕的想法)
Smarty顯示由PHP構建的數據。如果你想要靈活的設計,任何與顯示值/對象嚴格相關的東西都應該放在模板中。所以如果你改變顯示方式,PHP不會做不必要的計算。因此,總而言之,將顯示相關的東西移動到PHP代碼是一個壞主意。
的好消息是,有很多方法可以不包括在模板中的原始PHP代碼。您可以構建自定義功能,修改器或甚至專門爲各種任務設計的控件。如果它有意義(似乎可重用),您還可以傳遞顯示相關功能的對象。
更新:請注意,此答案與其他答案不同,它不建議將這些函數移動到PHP。只有這樣做,如果它與顯示數據無關,並且無論您如何構建佈局以及選擇顯示數據的表示方式,都必須執行此操作。
不,這不是一個好主意。 smarty模板的目標是讓不懂php的人輕鬆地更新標記,而不必學習php本身。因此,在這種情況下,如果您覺得需要將PHP代碼添加到模板中,您應該問自己是否必須在模板中,並且不能將其放入模板中。
保持業務邏輯和顯示獨立。
**版主說明** _這是關於混合PHP和模板變量的一個具體問題,而不是關於模板系統有用性或適當性的國會聽證會。請保持評論建設性和主題。我已經刪除了這個問題下的評論,因爲他們退化爲比信號更多的噪音._ –