從Django看CakePHP模板技術的弊端

2021-04-21 11:05:54 字數 751 閱讀 2678

cakephp的模板技術基本上沿用了rails的方式,也使用了layout技術(

鏈結),子模板的內容會替換layout中的$content_for_layout變數。這樣的方式很簡單,但它也有很多弊端,比如說title的渲染是由layout中的$title_for_layout變數負責的,通常cakephp程式設計師是通過在controller裡使用$this->pagetitle的方式來設定title的,但是因為title的內容會涉及很多顯示邏輯(比如為了seo),所以在controller裡設定title是醜陋的,同樣的情況也會出現在諸如meta等情況裡。

下面看看django裡的檢視技術(

鏈結):

}

}

django的模板同樣很簡單,即使你不了解django的語法也能大概猜出上面**的意思。這裡extends的作用其實就是layout的作用,在父模板裡有若干個block,在子模板裡也有若干個block,子模板裡的block可以覆蓋(也可以不覆蓋)父模板裡的block,這樣,就不會再有上面提到的title,meta等壞味道了。

換個角度看,cakephp的模板技術算是django的乙個簡化版本,如果你想在cakephp中實現django的block功能,可以通過自定義helper來實現,但這畢竟不是核心級實現,多少還是有些不爽。

從「土豆」看軟體

之所以用 代替,是因為我認為軟體設計 開發測試等方面太多了,我只說軟體需求這一方面。上篇文章中提到兩個 買土豆的故事 故事一中的張三和故事二中的甲,都屬於 聰明 的人,他們為老闆想得周到,老闆一句 看看市場上有賣土豆的嗎?和一句 買點土豆回來。引發了張 李和甲乙的不同的反應。但是給人比較統一的感覺就...

從積木看專案

培訓多少是有些枯燥的,印象中那些關於專案管理的培訓大多是乙個經驗豐富的資深人士以授課或者討論的方式向在座的學員傳授知識 心得或者一些實踐技巧。最近參加了一堂別開生面的專案開發實踐課 樂高遊戲體驗 從名字上就能看出來,其實是在玩樂高積木,如果拋開遊戲背後的東西,單純玩玩積木也是很有意思的一件事,哈哈。...

從生活看AOP

面向切面程式設計,首先面向切面程式設計是什麼?面向切面就是把邏輯 和處理瑣碎事物的 分離開,以便分離複雜度.面向切面有什麼用?舉個很簡單的例子吧,銀行去取款 取款之前會驗證使用者 輸入密碼,當客戶取款後想要檢視餘額,但是又要驗證一把輸入密碼,這樣不僅使用者體驗度極差,而且 繁瑣,所以仙子阿我們用到的...