- Classifield 的主要特色是將模板語法嵌入 HTML 元素的 class 屬性裡。
- 絕大部份的 HTML 元素都有 class 屬性,而且可以輸入複數的值,不會影嚮既有的 CSS class selector 。
- 沒有 class 屬性的 HTML 元素有:html 、 head 、 title 、 meta 、 link 、 param script 、 style。
- Classifield 的原始碼可以到 Google Code (http://code.google.com/p/classifield/)下載。
- Classifield 使用(接近)純碎 HTML 的模板,幾項特色或優缺點:
- 模板可以直接用瀏覽器預覽,以及可以被驗証 (參見:The W3C Markup Validation Service)。
- 分離模板邏輯與模板語法,將程式與美工人員的分工更為明確。
- 模板不需要插入 PHP 程式碼、模板專用的語法或其它 HTML 以外的語法,對負責模板設計美工的而言,較為友善。
- 模板能被任何一般文字網頁編輯器,或所見即所得的網頁編輯器正確的開啟。
- 承上,模板能在所見即所得的網頁編輯器裡編寫模板的語法。以 PHP (本身也是模板引擎) 插入變數到元素的屬性值裡為例:
<div <?php echo $var1?>="<?=$var2?>"></div>
部份編輯器會限制或自動編碼元素屬性欄位。 - 模板語法可以結合網頁結構,下為 Smarty 與 Classifield 的差別:
<ul> {foreach from=$myArray item=foo} <li>{$foo}</li> {/foreach} </ul>
<ul class="php-foreach-myArray-as-foo"> <li class="php-echo-foo"></li> </ul>
- 使用即有的技術,減少學習門檻。
- 需要 DOM lib 剖析模板,降低執行時的效能與提高記憶體需求。
- 需要其它選擇元素的方式,如QueryTemplates使用的 CSS selector (by phpQuery)
- 關於分離模板邏輯與模板語法,此點可參考另一個模板引擎 QueryTemplates,該模板引擎做的比較徹底。以及該作者的文章(Pure HTML templates theory « Personal devlog)。
歡迎來到小豬圈!
2009-03-31
自製的 PHP 模版引擎:Classifield
Subscribe to:
Post Comments (Atom)
個人常用鏈結
Labels
- .NET (1)
- Accessibility (3)
- ADSL (1)
- Apache (9)
- ASP.NET (1)
- Babyer (1)
- Browser (1)
- Canon MX700 (1)
- CAPTCHA (1)
- CentOS (1)
- CSS (7)
- DB:SQL (1)
- DB:SQLite (2)
- DNS (3)
- English (1)
- EXIF (1)
- filename.ext (1)
- Firefox (4)
- Firewall (1)
- Flash (4)
- Game 遊戲 (28)
- Game:PC (6)
- Game:PS3 (4)
- Game:Xbox360 (3)
- GNU (1)
- Google (6)
- Google:Android (8)
- Google:Blogger (2)
- Google:Chrome (1)
- Google:Code (2)
- GoogleAppEngine (2)
- GoogleMaps (1)
- GPG (1)
- Hinet (1)
- HTML (2)
- HTTP (1)
- i18n (1)
- IE (3)
- Java (2)
- Javascript (2)
- Linux (1)
- Microsoft (2)
- MIME (1)
- MySQL (7)
- NexusOne (2)
- OAuth (1)
- Open source 開放原始碼 (1)
- OpenID (1)
- OS (1)
- OS:Windows (33)
- PHP (49)
- PHP:GTK (2)
- PHP:PEAR (1)
- PHP:PECL (3)
- PHP:ZendFramework (4)
- PostgreSQL (1)
- PPPoE (1)
- RegularExpressions (2)
- Security (11)
- Sphinx (2)
- SQLite (1)
- TCP (1)
- Ubuntu (1)
- UDP (1)
- Usability (2)
- Virtaul PC (1)
- Wii (2)
- XML (1)
- Yahoo (2)
- Yahoo:BBAuth (1)
- Yahoo:YUI (1)
- Youtube (1)
- 不如賣雞排 (2)
- 不願役 (33)
- 中文處理 (1)
- 圖 (5)
- 媒體 (2)
- 影片 (1)
- 影音 (19)
- 思 (8)
- 攝 (9)
- 政 (7)
- 敗 (2)
- 漫畫 (5)
- 生活 (34)
- 硬體設備 (13)
- 網站開發 (16)
- 網路 (8)
- 英文 (3)
- 貓 (2)
- 資安 (1)
- 趣 (29)
- 軟體 (12)
- 遊記 (8)
- 運動 (2)
- 關於我 (1)
- 電影 (10)
No comments:
Post a Comment
Comment Form Message