<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
<link>http://blog.roodo.com/rocksaying/archives/2680742.html/</link>
<description><![CDATA[php template 樣版

前幾天我看到 phpPatterns 的《PHP and Templates》，作者舉了很多例子說明 PHP 不需要使用樣版引擎。我個人的經驗與該作者一樣， PHP 確實不需要使用樣版引擎。因為 PHP 本身就是一種樣版引擎，在樣版引擎上再加一個樣版引擎是多此一舉。
]]>
	</description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>
<atom:link href="http://blog.roodo.com/rocksaying/archives/2680742-comment.xml" rel="self" type="application/rss+xml" />
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[我是支持石頭這一方
Smarty 我覺得語法都套在HTML 一點都不乾淨...
而且還要學習Smarty到現在還看不太懂...
我看到Smarty真的會吐寫...一下找模板~~一下找程式碼~~找來找去...]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-19944117</guid>
		<category>文章回應</category>
	<pubDate>Wed, 14 Oct 2009 15:20:39 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[我是支持這篇文章的觀點的
我在各個template engine 中爭扎了不少時間, 
發覺php 自己不是一直也是奉行MVC 嗎? 只是語法和原來的一模一樣罷了...說到這個地步, 希望大家明白, 寫template 的時候不要如axis 所說的php 和html 混到亂七八糟

- 我一直認為比好看多了, 也更像在寫模版(好了, 我不再說這種膚淺的事)

- 和template engine 的寫法一樣, 重覆的分一分模組
- functional的在上面寫好, 不要帶到template
- 如果有些方法或者重覆的處理會出現的話, 寫一個公共的library...放在上面

做得好的話, 會比用template 更易讀
因為在
  
{foreach from=$rows item=row}  
      
這種地方, {foreach from=$rows item=row}本身對於xhtml 來說就是不會語法的]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-19652115</guid>
	<author>abbychau@gmail.com(abbychau)</author>	<category>文章回應</category>
	<pubDate>Mon, 10 Aug 2009 02:53:04 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[聽你在亂講...
CakePHP 裡面的 VIEW 就是一種樣版系統阿
不然你把 VIEW 系統拿掉試試看阿]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-18170365</guid>
	<author>iamadog@gmail.com(iamadog)</author>	<category>文章回應</category>
	<pubDate>Wed, 17 Dec 2008 07:16:35 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[樓上的似乎還是沒抓到這篇文章的重點...]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-17286697</guid>
		<category>文章回應</category>
	<pubDate>Thu, 28 Aug 2008 01:59:26 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[見仁見智！

如果版面設計跟程式是兩個人做的，那smarty倒真的幫上大忙。

做版面的完全不懂程式，那光靠MVC 是沒辦法好好分工吧。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-17097691</guid>
	<author>tw.alan@gmail.com(wcchi)</author>	<category>文章回應</category>
	<pubDate>Tue, 19 Aug 2008 14:54:24 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[版主，拜讀您的文章後，也很贊同您所說如果程式設計師寫程式時依據MVC架構，就不需要用 Smarty 將 presentation layer 和 business logic layer 分開。

我現在正準備開發一個新的網站，framework 打算用 CakePHP，但暫時對 caching 還沒有頭緒。您之前提及
「專案還沒進行到一半，就把 Smarty 的樣版語法清掉了，直接用 PHP 語法。只用 Smarty 的 cache 功能。」。

請問用 Smarty 的 cache 功能是一個逼不得已的方法，還是有可取之處呢？

我的要求是不同版面都會有不同 cache 的有效時間，在同一個頁面不同版塊cache 的有效時間也不同，還有分頁的 cache 。 這些要求似乎 Smarty 都能一一處理，還是有更好的方法呢？ 因為我較擔心 Smarty 要同時用accelerator才會有較好的 preformance。

請賜教，謝謝。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-16857929</guid>
		<category>文章回應</category>
	<pubDate>Mon, 14 Jul 2008 18:34:32 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[我贊同版主所說的，
自己用 smarty 也覺得很麻煩，
現在都是要設計直接設計一些網頁的樣板給我（就是一般網路上看到的那些）
他只要提供  html jpg css
然後我把php產生的內容資料貼進去，
這樣可以很快的產生客戶要的東西。
小改版的話，
只要客戶改掉 css 和 jpg 就可以，
大改版的話，
我又有錢賺了！]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-14903641</guid>
	<author>sjhuang.tw@gmail.com(Jason)</author>	<category>文章回應</category>
	<pubDate>Fri, 02 Nov 2007 13:54:29 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[嗯，你是指 PDOStatement 不能讓你看到實際送出的 SQL 查詢敘述嗎？ 用 PDOStatement 時，應該沒有這方面的需求吧？不過我自己都不用 PDOStatement ，好像不適合說這話。

我現在仍然習慣自己丟字串，還自己弄 prepare 功能，如 <a href="http://blog.roodo.com/rocksaying/archives/3321763.html">To Prepare SQL Statements</a> 。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-11131309</guid>
		<category>文章回應</category>
	<pubDate>Wed, 04 Jul 2007 16:42:06 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[嗯，我個人常做的事是...

在程式碼最後，把HTML 另外用 Include 進來...
然後 PHP CODE 是我平常在做的
美工就變HTML

當初用Smarty是為了我debug方便
（當可以看到一整個頁面產生了那些變數及變數的內容，那有多爽啊）

不過，隨著我改用Zend Studio後，這個功能就變的不是那麼必要了...

可惜，PDO好像不能把我要的SQL語法送出來做debug，我只好繼續用adodb]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-11122757</guid>
	<author>lman@brain-c.com(梁楓)</author>	<category>文章回應</category>
	<pubDate>Wed, 04 Jul 2007 00:54:18 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[Smarty 難道就不是一種邏輯性語法嗎？在 HTML 裡面混雜一堆 Smarty 語法就算是分得乾淨喔？你找個網頁設計師問問看吧。

唉。前面那麼多人討論的內容都白說的了。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-10832043</guid>
		<category>文章回應</category>
	<pubDate>Fri, 08 Jun 2007 00:40:03 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[不好意思，我實在很懷疑版主究竟有沒有用過smarty??
		
		我不否認，在用smarty架構網站的過程，確實辛苦，但是這是先苦後甜
		
		除非確定這個站100年之內不改版，否則一但需要版面大翻修的時候
		
		你就會慶幸，當初有使用smarty了
		
		就我現在公司所維護的網站，沒有用smarty，php和html全部混在一起
		
		要改版面那才叫痛苦,因為原始程式不是我寫的。
		
		當然如果當初有用SMARTY，叫美工直接去改smarty的佈景檔，不見得可行
		
		所以我還是叫美工設計好後，我再自己去套版面。那這樣有沒有用smarty有什麼不一樣?
		
		當然不一樣，比不用smarty的情況好套太多了
		
		php本身就是樣板引擎??  好~那請問php要如何做到smarty那樣，把php和html分的乾乾淨淨??
		
		MVC??  那不算!!  基本上用MVC的只有寫的人很爽，以後維護的人就要倒大霉，程式被拆得到處都是
		
		檔案呼叫來呼叫去，去研究還不如重寫
		
		
		「像 CakePHP, Code Igniter 等，它們的設計者都不認為 PHP 需要樣版引擎，
		
		因此 PHP 程序員將有更多機會體會到直接使用 PHP 語法會比套用 Smarty, PHPLib 那些樣版引擎更簡單。」
		
		會這樣講代表他們根本不知道SMARTY的真義。我也覺得，直接用PHP語法結合HTML，好簡單，好快，一目了然
		
		相信大家都同意。但是一開始爽的結果，以後要修改版面就知道痛苦了
		
		
		如果不會覺得痛苦的，那一定是他的網站規模很小，PHP程式不多，那當然不需要SMARTY也無所謂]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-10822641</guid>
		<category>文章回應</category>
	<pubDate>Thu, 07 Jun 2007 11:13:10 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[既然提到 LifeType ，我也說說 Xoops 吧。

我上次在專案中使用 Smarty ，是在 Xoops 下開發新的模組。最初也是計劃依著 Xoops 架構用 Smarty 的樣版設計頁面。但就像我前面說的一樣，網頁設計師拒絕我的「好意」。所以前台頁面照他們的老方法，先設計好再丟給程式設計師嵌 tag 。

前台不用了，還有後台的頁面。我就用 Smarty 去設計，寫著寫著就漸漸不耐煩了... 或者，像 Mark 說的，噁了。專案還沒進行到一半，就把 Smarty 的樣版語法清掉了，直接用 PHP 語法。只用 Smarty 的 cache 功能。

Smarty/PHPlib 對純粹的 PHP 程序員來說，有「強迫」他們養成將頁面和業務邏輯分離的作用。然而我寫 C/C++ 時就養成了 MVC 架構的習慣，這習慣也帶到 PHP 中，是以我並不需要 Smarty/PHPLib 「輔助」我分離兩者。而且 CakePHP 那些 framework 的架構也同樣有助於 PHP 程序員養成頁面與業務邏輯分離的習慣。

我想 Smarty/PHPlib 或許已經完成其階段性任務了。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897737</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 15:18:04 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[其實我滿贊同的。

尤其是當我現在維護的 LifeType 整個是由 Smarty 組成的時候，你就知道用 Smarty 時的噁心。

其實並非 PHP 使用樣版引擎不好，而是使用樣版引擎到底對目前的工作有沒有加速，效能有沒有提升。

PHP 最大的問題就是『髒』。所有程式、頁面設計全部集中在一起。樣版引擎的出現，只是讓 PHP 的程式設計師開始想想該怎麼寫一些乾淨的程式。

可是使用 Smarty/PHPLib 後所造成的程式 Overloading，又讓大家回頭過來思考，是不是畫蛇添足了。因為 PHP 本身就是 Template Engine，幹麻要在 Template Engine 上又加上一個 Template Engine....

所以就像石頭說的 CakePHP, Symfony 都用 PHP 的 tag 來做樣版引擎，而不再另外發明。但是那跟原來『髒』的寫法差在哪裡？

差在現在寫程式更有規矩了！因為目的放再把邏輯與樣本分開，而不再用什麼 tag。所以即使用 PHP 本身當作樣版引擎，PHP 程式也不再髒了。

所以 PHP 需不需要另一個樣版引擎？看各人喜好吧！只是功能越強大的樣版引擎如 Smarty，越需要強大 CPU、強大的 I/O 功能，強大的 Opcode Cache。否則當程式越大，跑得越慢。 :(

就這樣的觀點看來，我越來越喜歡歡用 PHP 本身來當作樣版引擎，而不另外發明。

BTW， 如果有一天 PHP 的 JAVA/NET Compiler 都成熟了，那麼用 Smarty/PHPLib 來當作樣版引擎時，對效能可能就不會有那麼大的影響了。另一個作法，是把 Smarty 寫成 Native PHP Extension。

Mark]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897517</guid>
	<author>whsinyee@hotmail.com(Mark)</author>	<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 13:45:48 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[我沒提到的個人經驗是，我曾經想讓網頁設計師用 Smarty 。是我忍住我的不便，想讓身邊的伙伴輕鬆一點。然而結果被打回票。

Smarty 沒有程式設計師所設想的有用，<em>「反正都是程式設計師搞出來的怪玩意，只有你們看得懂。」</em>我上次工作的那家軟體公司的網頁設計師如此說。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897311</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 12:24:26 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[嗯，我想...這點還是個人的經驗問題，我個人是有自己一套 語法 reuse 上的觀點，我也不認為你能全盤接受；因為我們開發的環境或許不能類比，因為我接觸過的 PHP 案子不多，所以我想我的經驗還是不足以供你參考。

還是老話一句：想想你身邊的伙伴，他們能接受什麼就是什麼，我們認為對的想法，不一定能套用到他們身上。

以上是個人拙見。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897214</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 11:43:50 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[jaceju said: 像 Smarty 這樣的樣版引擎還有一個好處，那就是 plugins 的 reuse 

這點也不成立。我會把重複可再用的語法，寫在另一個 php 中，讓 View 掛入。你可以看看 CakePHP, Code Igniter 的做法。它們的 Help 就是你說的 plugins 。它們通常在 Controler 中載入 Help (plugins) ，在 View 裡面調用。只要你願意，你也可以在 View 中載入 Help ，除了語法差異，跟 Smarty 沒兩樣。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897023</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 10:37:10 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[唉，先改一下標題好了。從「PHP 不需要樣版引擎」改成「PHP 不需要<em>另一個</em>樣版引擎」。

PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ，所以就像一份 XML 文件必須標示  一樣， PHP 要求自己包含在  標籤中。上文說了，這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言，但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。

繼續觀看其他回應 <a href="http://blog.roodo.com/rocksaying/archives/2681202.html">part 2 - 補充與回應</a>]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3897005</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 10:30:04 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[tokimeki 說得很對。

工程師有一個非常大的缺點，就是喜歡把自己覺得可行的東西硬套到其他成員身上。而我也是其中一個，只不過我學到了很多教訓。

當初會想要學習 Smarty ，其實就是因為身邊的伙伴完全不懂 PHP 。對他們來說，能夠簡單快速是最好的；所以不僅是 PHP 而已，就連 HTML 和 CSS 他們都非常依賴工具。

當然目前多數視覺開發工具對 PHP 語法的支援度不是那麼良好，就算是 Dreamweaver 也不是那麼完美。我的經驗裡，讓他們使用能支援 Smarty 語法的編輯器，對我們在溝通上來說會比完全沒辦法看到程式來得好些。

除此之外，像 Smarty 這樣的樣版引擎還有一個好處，那就是 plugins 的 reuse 。當然 PHP 本身的語法也能辦到，不過比起一個簡單的 Smarty 語法，你在原生的 PHP 語法裡必須重複寫上好幾行程式才能做到。我不反對拿 PHP 的語法直接當做樣版引擎語法，但是無論如何都要保持簡單與易懂。

我常抱持著一個觀念：那就是國外的趨勢不能拿來台灣硬套，要套也要稍作修整。我敢說，要在台灣能夠接案開發 (當然玩票或研究性質不算) ，除非是「一人團隊」或是超級高手所組成的公司，否則就目前現有的框架是沒有辦法能夠在台灣提供生存機會的。

如果能夠跟身邊的伙伴有良好溝通的話，我想有沒有樣版引擎其實都無所謂， Team Work 才是真正的重點。

抱歉在你的 Blog 造次，我只是想提出我的經驗供你參考。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3896961</guid>
		<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 10:14:52 +0800</pubDate>
</item>
<item>
	<title>回應：PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)</title>
	<description><![CDATA[我個人對這種說法持保留意見。
我認為樣板系統對於如何構成畫面提供了一個一致性的流程與結構，透過學習並使用樣板系統，可以讓程式設計師的工作輕鬆不少，也保證了一定程度的程式品質。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/2680742.html#comment-3896538</guid>
	<author>HACGIS@gmail.com(tokimeki)</author>	<category>文章回應</category>
	<pubDate>Tue, 30 Jan 2007 05:28:40 +0800</pubDate>
</item>
</channel>
</rss>