在this answer末尾,RobertPitt寫道:「隨着時間的推移,你不應該在課堂上直接使用html,而是將上面的代碼分成幾個類。爲什麼我們不應該在PHP類中包含html標記?
那麼爲什麼這被認爲是不好的做法呢?
在this answer末尾,RobertPitt寫道:「隨着時間的推移,你不應該在課堂上直接使用html,而是將上面的代碼分成幾個類。爲什麼我們不應該在PHP類中包含html標記?
那麼爲什麼這被認爲是不好的做法呢?
您引用的部分答案似乎與本身矛盾,因爲它指出您不應該在您的類中使用HTML,而是建議您創建Header和Footer類,這可能會生成HTML。
目前的其他答案似乎也沒有解決您的問題。他們正確地指出,你所引用的答案與問題的分離有關,但這並不是你問的問題,至少從你的問題標題來看。
如果你實際上在問是否寫一個負責生成HTML標記的類是不好的做法;那麼簡短的答案就不是。
流行的框架有時包括致力於此目的的類,例如Yii中的CHtml。
因爲類本身應該是模塊化的。例如,您可能希望在許多具有完全不同的HTML標記的不同項目中使用身份驗證類。
儘量將GUI和邏輯儘可能分開,以便您可以在其他項目中輕鬆地重複使用代碼段。
混合應用邏輯,商業邏輯和視圖部件(在本例中的HTML)的單個地方內違反兩者Separation of concerns和Single Responsibility設計原則。所以,這真的不是一個好習慣。後
更新對方的回答和評論:
生成HTML部分,字符串或專用類的任何類型的數據是確定的。這沒有錯。你可以用你的類或方法中的html部分,字符串來產生/使用/格式化或做任何你想要的。問題是當你決定在你的應用程序的另一個類或方法(部分)中做這件事時,主要責任是處理其他事情。沒有任何原則或慣例編寫代碼,導致構建難以維護,難以理解,難以閱讀,沒有人願意學習/維護/擴展或使用的無味應用程序。這不是一件好事。
+1一個簡短的總結,從鏈接中,意味着什麼會更好 – AlexP
您能澄清一下您的問題是關於「不是直接在您的課堂上使用HTML」還是「將上述課程分成幾個班級」? – bcmcfc
問題不是在類中生成html,而是代碼重用:html helpers(認爲在Yii,Zend,COdeigniter ...)是一個生成html類的例子,它保持它們的作用域(創建一個通用html ,但具體而言:例如表單助手),並且只能用於任何項目。 –
我想說,你必須問*羅伯特皮特*,你應該把它作爲他的回答下的一個意見。 – hakre