最近應(yīng)為網(wǎng)站開(kāi)發(fā)的緣故,開(kāi)始學(xué)習(xí)使用smarty,,下面是我在實(shí)際使用過(guò)程中的幾點(diǎn)體會(huì),,希望能對(duì)大家有所幫助,。
(1)smarty的目錄結(jié)構(gòu)。smarty必須指定四個(gè)目錄,,分別是編譯目錄,、緩存目錄、配置文件存放目錄和模板文件存放目錄,。你可以使用默認(rèn)的目錄,,也可以自己重新定義。 下面是我參照《SmartestSmartyPractices 》這篇文章而設(shè)定的網(wǎng)站目錄結(jié)構(gòu),。(http://smarty./?page=SmartestSmartyPractices)
- /
- |--Cache: 存放網(wǎng)頁(yè)緩存文件,!
- |--Combile:存放編譯過(guò)的腳本文件!
- |--Document:存放文檔文件,。
- | |--DataSource:存放相應(yīng)的資料源文件,,比如各種簡(jiǎn)介材料。
- | |--DesignDoc: 存放設(shè)計(jì)檔案,。
- | |--ImageSource:存放圖片的源文件,,一般是PNG或者PSD格式的圖片。
- | |--Refrence:存放用phpDocumenter生成的網(wǎng)站的參考手冊(cè),。
- |--Html:用戶通過(guò)瀏覽器可以直接訪問(wèn)的網(wǎng)頁(yè)文件,。具體的目錄根據(jù)實(shí)際的欄目而定。
- | |--Admin:網(wǎng)站管理程序,。
- | |--Images:網(wǎng)站圖片文件,。
- | |--CSS:存放樣式表文件。
- | |--
- | |--
- |--Include: 網(wǎng)站包含文件存放路徑,。
- |--Pear:存放Pear類文件,。
- |--Smarty:存放Smarty類文件。
- |--Templates: 網(wǎng)頁(yè)模板文件,。
復(fù)制代碼
(2)自動(dòng)完成相應(yīng)變量的設(shè)定,。 可以對(duì)smarty類進(jìn)行擴(kuò)展,以便自動(dòng)完成相應(yīng)變量的設(shè)定,。
- MySmarty.class.php文件,。
- <?php
- define('SMARTY_DIR','/data2/web/Smarty/');
- require_once(SMARTY_DIR.'Smarty.class.php');
- class MySmarty extends Smarty
- {
- function MySmarty()
- {
- $this->Smarty();
- $this->template_dir = "/data2/web/Templates";
- $this->compile_dir = "/data2/web/Combile";
- $this->config_dir = "/data2/web/Include";
- $this->cache_dir = "/data2/web/Cache";
- }
- }
- ?>
復(fù)制代碼
然后在其他文件里面包含MySmarty.class.php文件,就可以了,。
(3)模板文件與dreamweaver的兼容問(wèn)題,。 {}標(biāo)簽里面的東西在DM中是無(wú)法正常顯示的,可以有一個(gè)插件,,將{}里面的東西顯示為一個(gè)黃色的“S”,,具體的附件在這個(gè)論壇里面有,以前我發(fā)過(guò),。
(4)如果你自己在使用Smarty,,那么在程序和模板之間要注意相應(yīng)文件的對(duì)應(yīng),。以下是我使用DM維護(hù)頁(yè)面和程序的方法。 比如:模板文件可以定義為一個(gè)站點(diǎn),,主要是用來(lái)做頁(yè)面美工的設(shè)計(jì),,程序文件可以定義為另外一個(gè)站點(diǎn),主要是寫相應(yīng)的程序文件,。那么有一些公共的文件,,就需要在這兩個(gè)站點(diǎn)之間進(jìn)行更新維護(hù)。一般來(lái)講是需要將模板站點(diǎn)里面的一些圖片,、包含文件,、樣式表文件拷貝到程序站點(diǎn)里面對(duì)應(yīng)的目錄下面。
(5)緩存文件和編譯教本文件的刪除,。 有的時(shí)候需要將編譯過(guò)的腳本文件或者緩存文件刪除,,直接手工刪除是刪不掉的,(linux系統(tǒng)下面),??梢允褂胹marty 自身帶的方法,不過(guò)我自己寫了一小段程序,,用來(lái)將編譯過(guò)的教本完全是刪除,。
- $Path = "/data2/web/Combile/"; //Smarty的教本編譯目錄
- $DirID = opendir($Path);
- while($DirName = readdir($DirID))
- {
- if($DirName != "." and $DirName != "..")
- {
- exec("rm -fr ".$Path.$DirName);
- }
- }
復(fù)制代碼
|