欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Php Ctemplate引擎開發(fā)相關(guān)內(nèi)容

 更新時(shí)間:2012年03月03日 22:12:34   作者:  
因?yàn)楣拘枰?,我們后面的?xiàng)目將采用Php Ctemplate引擎開發(fā)。在這里,我只是將我這一個(gè)月學(xué)習(xí)到的,和自己的理解寫出來。如果有不正確,或者描述不準(zhǔn)確的地方,希望大家能批評指出
1.簡介

也許你對Php Ctemplate不了,解甚看到這個(gè)名詞,只知道它的前半部分是一種編程語言。沒有關(guān)系讓我來給大家介紹一下這個(gè)基于php語言的標(biāo)簽?zāi)0嬉妫ㄕ堅(jiān)试S我這樣去翻譯這套web開發(fā)解決方案,盡管我可能翻譯的不準(zhǔn)確)。

先簡短說一下他的歷史。了解Php Ctemplate先要知道Ctempalte;Ctempalte全稱是Google Ctemplate。它是一種用c++語言、簡單但是效率非常高的網(wǎng)頁模版引擎。讓我們來看一段代碼,聰明的你立刻就知道它怎么用了(來自官方Demo)

那么C++輸出便是:
Hello John Smith
You Have just won (這里是執(zhí)行random%100000 隨機(jī)數(shù))
Well ,(這里是執(zhí)行random%100000 的隨機(jī)數(shù)再 * 0.83),after taxes
好吧,總結(jié)一下 就是把c++源碼中的Template對象加載 tpl(我們可以稱它為模版)文件之后,再填充TemplateDictionary中的對應(yīng)的值,最后輸出。聽起來很拗口是吧,簡單點(diǎn)把后端標(biāo)簽對應(yīng)值填充到tpl的{{標(biāo)簽}}中。
詳細(xì)的請參見http://google-ctemplate.googlecode.com/svn/trunk/doc/index.html
那么PHP ctemplate呢?大家都知道PHP擴(kuò)展吧,玩過PHP的朋友都知道gd,exif,mysql,mysqli這些擴(kuò)展吧。對,就是php.ini 文件里“extension=”那里的dll。我總結(jié)PHP ctemplate就是用PHP擴(kuò)展接口的格式,包裝了Google Ctemplate,讓PHP具有Google Ctemplate的功能。再通俗點(diǎn)體現(xiàn)在代碼上就是:tpl文件不變,只是把c++ 文件變成了php文件。至于它的用法我想我在這里就不多介紹了,他和Google Ctempalte 一樣。
詳見http://code.google.com/p/php-ctemplate/
2.WIN32下可以嗎
也許你會(huì)很快意識到這種模版引擎,符合我們常見的MVC吧。沒錯(cuò),就是這樣。但是很遺憾,PHP Ctemplate只能在Freebsd系統(tǒng)中運(yùn)行,win32環(huán)境中的php,我至今沒有在網(wǎng)上發(fā)現(xiàn)對應(yīng)的PHP ctemplate dll,我也咨詢過PHP ctemplate的作者,他好像不太愿意在win32環(huán)境中編譯這些代碼;我曾經(jīng)和我開發(fā)c++的朋友“阿呆”試著編譯,我們找了php源碼+ Ctemplate源碼+PHP ctemplate源碼編譯出了win32下的PHP ctemplate擴(kuò)展,但是很奇怪,每次php啟動(dòng)加載PHP ctemplate時(shí),php引擎就會(huì)出現(xiàn)異常,PHP ctemplate不能正常加載。

如果成功加載php ctemplate則會(huì)在phpinfo 中顯示:

      我也看了下PHP ctemplate的源碼好像是基于Zend編寫的。因?yàn)楸救藢++和php都不是很精通,實(shí)在也沒有能力去重新編寫這套擴(kuò)展,所以只能想了個(gè)折中的辦法:把Ctemplate用ATL COM 包裝起來,模擬PHP ctemplate的函數(shù)和方法。

3.我的嘗試

      之所以這么曲折,是因?yàn)橛眠@套框架后,根本沒有辦法調(diào)試PHP代碼,我試過在freebsd的環(huán)境中安裝xdebug,好吧,勉強(qiáng)能進(jìn)行遠(yuǎn)程調(diào)試??墒莊reebsd是沒有圖形界面的,哎,無奈下安裝了gnome,只能暫時(shí)這樣了。出于好奇和不服氣,我把Ctemplate用ATL COM 包裝起來,模擬PHP ctemplate的函數(shù)和方法,但是只完成了一半。在這里要特別感謝“阿呆”同志,沒有他我也根本寫不出c++的ATL。下面是ATL COM里面的方法(只完成了一部分)。

 

我包裝的ATL COM 功能我包裝在了core.php 中。

      如果大家有興趣可以找我要源碼繼續(xù)完善,因?yàn)樗荂OM的所以ASP也可以使用,我會(huì)把dll提供下載。如果大蝦們成在win32下成功編譯使用PHP ctemplate,那我更求之不得。
下載COM文件 phpctempalteCOM

相關(guān)文章

最新評論