smarty變量

一、$template_dir [模板目錄變量]
該變量定義默認模板目錄的名字。當包含文件時,若是不提供一個源類型(即源地址),那麼將會到模板目錄中尋找。默認狀況下,目錄是:「./templates」,也就是說他將會在和php執行腳本相同的目錄下尋找模板目錄。
二、$compile_dir [編譯目錄變量]
該變量定位編譯模板的目錄名字。默認狀況下,目錄是:「./templates_c」,也就是說他將會在和php執行腳本相同的目錄下尋找編譯目錄。
技巧:該設置必須是一個相對或絕對路徑。包含路徑不用於寫文件。
技巧:不推薦把編譯目錄放在web服務器根目錄下。
三、$config_dir [配置目錄變量]
該變量定義用於存放模板配置文件的目錄,默認狀況下,目錄是:「./configs」,也就是說他將會在和php執行腳本相同的目錄下尋找配置目錄。
技巧:不推薦把編譯目錄放在web服務器根目錄下。
四、$plugins_dir [插件目錄變量]
該變量定義Smarty尋找所需插件的目錄。默認是在SMARTY目錄下的「plugins」目錄。若是提供了一個相對路徑,Smarty將首先在SMARTY目錄下尋找,而後到當前工做目錄下尋找,繼而到php包含路徑中的每一個路徑中尋找。
五、$debugging [調試變量]
它能啓動調試控制檯。該控制檯是一個javascript窗口,該窗口告訴你被包含的模板和應用於當前模板頁面的變量。
六、$debug_tpl調試模板變量
該變量定義用於調試控制檯的模板文件名字。默認狀況下,其名字爲:debug.tpl,位於Smarty目錄中。
七、$debugging_ctrl [調試控制變量]
該變量做用是容許以交替的方式啓動調試設置。NONE表示不容許交替方式。URL表示當關鍵詞SMARTY_DEBUG出如今QUERY_STRING(查詢字符串)中時,針對此腳本的調用,調試被啓動。若是$debugging變量是真,則忽略其調試控制變量值。
八、$global_assign [全局配置變量]
定義一組老是隱式地做用於模板引擎的變量列表。這對於使全局變量或服務器變量可用於全部模板是很方便的,由於無需手工配置它們。在全局配置中的每一元素應當要麼是一全局變量的名字,要麼是一鍵/值對(鍵是全局數組名,值是對應該全局數組的變量數組)。$SCRIPT_NAME變量默認屬於$HTTP_SERVER_VARS數組。
技巧:服務器變量能夠經過$smarty變量得到,如{$smarty.server.SCRIPT_NAME}。參看$smarty變量一節。
九、$undefined [未定義變量]
該變量爲Smarty設定沒有獲得定義的變量的值,默認爲空.當前僅用來設定全局配置中的未定義變量爲一個默認值.
$autoload_filters [自動加載過濾器變量]
若是你但願在每次模板調用過程當中加載過濾器,你能夠指定他們使用此變量,Smarty將自動爲你加載它們.該變量是一個聯合數組,在數組中鍵是過濾器類型,值是過濾器名字所組成的數組.例如:
 $smarty->autoload_filters = array('pre' => array('trim', 'stamp'),
 'output' => array('convert'));
十、$compile_check [編譯檢查變量]
每次調用PHP應用程序,Smarty 會試着查看自上次編譯時間以來,當前模板是否被修改過.若是修改過了,她會從新編譯那個模板.若是模板尚未被編譯過,她將編譯模板而無論編譯檢查如何設置.默認狀況下編譯檢查這個變量設置爲true.一旦一個應用程序投入產品中(模板將不會修改了),就再也不須要編譯檢查這一步了.爲了最大性能,肯定將$compile_check設爲"false".注意:若是設爲了"false",雖然模板文件被修改,但你不會看到修改結果,由於模板沒有獲得從新編譯.若是啓動了緩存和編譯檢查,一旦有關模板文件或配置文件被更新,緩存文件將會重建.
十一、$force_compile [強迫編譯變量]
強迫Smarty每次調用(從新)編譯模板時.這項設置不受$compile_check的限制.默認狀況下,它是無效的.它對於開發和調試很方便.但它決不能使用於產品環境下.若是啓動了緩存,每次將會從新生成緩存文件.
十二、$caching [緩存變量]
告訴Smarty是否緩存模板的輸出.默認狀況下,她設爲0,或無效.若是模板產生冗餘內容,建議打開緩存.這樣有利於得到良好的性能增益.你也能夠爲同一模板設有多個緩存.當值爲1或2時啓動緩存.1告訴Smarty 使用當前的$cache_lifetime變量判斷緩存是否過時.2告訴 Smarty 使用生成緩存時的cache_lifetime值.用這種方式你正好能夠在獲取模板以前設置緩存生存時間,以便較精確地控制緩存什麼時候失效.
若是啓動了編譯檢查,一旦任何的模板文件或配置文件(有關緩存部分的配置文件)被修改,緩存的內容將會從新生成.若是啓動了強迫編譯,緩存的內容將總會從新生成.
1三、$cache_dir [緩存目錄變量]
這是存放模板緩存的目錄名.默認狀況下,它是:"./cache",也就是說你能夠在和php執行腳本相同目錄下尋找緩存目錄.你也能夠用你本身的自定義緩存處理函數來控制緩存文件,它將會忽略這項設置.
技巧:這項設置必須是一個相對或絕對路徑.包含路徑不用於寫文件.
技巧:這項設置必須是一個相對或絕對路徑.包含路徑不用於寫文件.
1四、$cache_lifetime [緩存生存時間變量]
該變量定義模板緩存有效時間段的長度(單位秒),一旦這個時間失效,則緩存將會從新生成.若是要想實現全部效果,$caching必須因$cache_lifetime須要而設爲"true".值爲-1時,將強迫緩存永不過時.0值將致使緩存老是從新生成(僅有利於測試,一個更有效的使緩存無效的方法是設置$caching = false.)
若是啓動了強迫編譯,則緩存文件每次將會從新生成.要想有效地中止緩存,你能夠利用clear_all_cache() 函數清除全部的緩存文件,或者利用clear_cache() 函數清除個別文件(或文件組).
技巧:若是你想給某些模板設定它們本身的緩存生存時間,你能夠在調用display()或fetch()函數以前,經過設置$caching = 2,而後設置$cache_lifetime爲一個惟一值來實現.
1五、$cache_handler_func [緩存處理函數變量]
你能夠提供一個自定義函數來處理緩存文件,而不是經過變量$cache_dir使用內置方法.
1六、$cache_modified_check [緩存修正檢查變量]
若是設置該變量爲真,Smarty將分析客戶端發送來的If-Modified-Since頭信息.若是緩存文件時間戳自上次訪問以來沒有改變,則發送一個"304 Not Modified"頭,而不是緩存文件內容.這種方式僅工做於沒有 {insert} 標記的緩存內容.
1七、$config_overwrite [配置覆蓋變量]
若是設該變量爲真,則從配置文件中讀取出來的變量將會互相覆蓋.不然,變量將會放到一個數組中.若是你想把配置文件中的數據存儲到數組裏,這種方式是頗有用的,僅僅列出每一個元素屢次就能夠了.默認狀況下,設爲真.
1八、$config_booleanize [配置布爾化變量]
若是該變量設爲真,配置文件中的on/true/yes 和 off/false/no值會自動轉化爲布爾值.這樣的話,你就能夠在模板中像{if #foobar#} ... {/if}這樣使用這些值了.若是foobar爲on, true 或 yes,那麼 {if}語句就會執行了.默認狀況下,該變量值爲真.
1九、$config_read_hidden [配置讀取隱藏變量]
若是設爲真,在配置文件中的隱藏節塊能夠從模版中讀取出來.典型的你會設爲假,這樣你能夠在配置文件裏存放敏感數據,例如數據庫參數,而不用擔憂模版會調用他們.默認狀況下,該變量設爲假.
20、$config_fix_newlines [配置固定換行符變量]
若是該變量設爲真,那麼在配置文件中的mac 和 dos 換行符(\r and \r\n)在語法解析時將會轉換爲\n. 默認狀況下,該變量爲真.
2一、$default_template_handle r_func [默認模板處理函數變量]
該函數在模板不能從它的源目錄下獲取時會獲得調用.
2二、$php_handling [PHP處理變量]
該變量告訴Smarty怎樣處理嵌入到模版中的php代碼.有四種可能的設置,默認爲SMARTY_PHP_PASSTHRU.注意:改變量的設置不會影響模板裏面{php}{/php}標記中的php代碼.
原樣輸出標記.
做爲html實體引用標記
從模板中移出標記.
將做爲php代碼執行標記.
極度不同意將php代碼嵌入到模板中.
2三、$security [安全變量]
安全變量要麼是真,要麼是假.默認爲假.當你不信任模板中的可編輯部分(例如經過ftp方式上傳編輯的),並想經過模板語言減少系統非安全的風險時,安全變量設爲真比較適合.設爲真會將下面的規則強加於模板語言中,除非特別地用$security_settings覆蓋.
若是變量$php_handling設爲了SMARTY_PHP_ALLOW,則會隱式地被修改爲SMARTY_PHP_PASSTHRU
PHP函數在IF語句中是不容許的,除了在$security_settings中另行指出.
模板僅能夠包含於$secure_dir數組列出的目錄中.
本地文件僅能夠用{fetch}獲取於$secure_dir數組列出的目錄中.
不容許有{php}{/php}標記.
PHP函數不容許做爲修正器,除了在$security_settings中指出.
2五、$secure_dir [安全目錄變量]
這是一個與安全有關的本地目錄數組變量.當啓動安全變量時{include} 和 {fetch}會用到此數組變量.
$security_settings [安全配置變量]
用於當啓動安全變量時覆蓋或另行指定安全配置.有如下幾種可能的配置:
PHP_HANDLING - 真或假.若是真,則不檢查$php_handling的配置.
IF_FUNCS - 這是一個可容許包含在if語句中的php函數名數組.
INCLUDE_ANY - 真或假.若是真,能夠從文件系統中包含任何模板,而無論$secure_dir目錄設置如何.
PHP_TAGS - 真或假.若是真,{php}{/php}容許在模板中存在.
MODIFIER_FUNCS - 這是一個可用做修正器的php函數名數組.
2六、$trusted_dir [信任目錄變量]
信任目錄變量僅用在$security啓動以後.這是一個全部創建信任的目錄數組變量.你能夠將php腳本放到這些信任目錄中,這些腳本會直接在模板裏以{include_php}標記獲得執行.
2七、$left_delimiter [左結束符變量]
用於模板語言中,默認是"{".
2八、$right_delimiter [右結束符變量]
用於模板語言中,默認是"}".
2九、$compiler_class [編譯類變量]
指定Smarty用來編譯模板的編譯類名.默認爲:'Smarty_Compiler'.僅適合於高級用戶.
30、$request_vars_order [變量順序變量]
請求變量的順序在這裏配置,相似於php.ini中的變量順序.
3一、$request_use_auto_globals [自動全局變量]
指定Smarty是否使用php的$HTTP_*_VARS[]數組變量(默認$request_use_auto_globals=false)或$_*[]數組($request_use_auto_globals=true)變量.這對使用了{$smarty.request.*}, {$smarty.get.*}等標記的模板有影響.值得注意的是:若是設置$request_use_auto_globals爲真,variable.request.vars.order就無效了但php的gpc_order配置值還有做用.
3二、$compile_id [編譯ID變量]
永久的編譯鑑別號.做爲一個可選辦法將相同的編譯號傳遞給每一個函數調用,你能夠設置這個編譯id,隨後此id將會被隱含地使用.
3三、$use_sub_dirs [子目錄變量]
若是你的php環境不容許Smarty建立子目錄,則設此變量爲假.子目錄很是有用,因此儘量的使用他們.
3四、$default_modifiers [默認修正器變量]
這是一個修正器數組變量,這些修正器隱式地做用於模板中的每一個變量.例如:針對HTML,用數組('escape:"htmlall"')默認地忽略每一個變量;爲了使一個變量免除於默認修正器,請將參數爲"nodefaults"的特殊"smarty"修正器做用於它,例如:{$var|smarty:nodefaults}.
3五、$default_resource_type [默認源類型變量]
該變量告訴smarty隱式地使用什麼源類型.默認值爲'file',也就是說,$smarty->display('index.tpl');和and $smarty->display('file:index.tpl');從意思上是同樣的.祥見resource一章。
相關文章
相關標籤/搜索