Smarty物件的預設屬性和方法
在Smarty使用五步走中的第三步是更改Smarty物件的預設屬性與行為,那麼我們在實際操作時,怎麼設定其值呢?
工具/原料
Smarty
方法/步驟
1)Smarty中的相關屬性
問題:如何追蹤left_delimiter與right_delimiter預設值呢?
答:使用Zend軟體中的快捷鍵Ctrl+滑鼠左鍵可以追蹤原始碼!
在實際應用中,如果你不習慣使用{}花括號可以更改這兩個屬性,如下圖所示:
但是要注意,更改完成後,在模板中呼叫標籤也需要使用以上方式,如下圖所示:
2)與路徑相關的四個屬性
• template_dir :模板目錄,預設為templates
• complile_dir :編譯目錄,預設為templates_c
• config_dir :配置目錄,預設為configs
• cache_dir :快取目錄,預設為cache
以上預設路徑都可以在Smarty.class.php入口檔案中查詢到,如下圖所示:
但是在Smarty2.0中,以上四個屬性是公有屬性,但是在Smarty3.0版本之後,以上四個屬性都被宣告為私有屬性,但是我們還是可以在類的外面實現對以上四個屬性的訪問,如下圖所示:
說明:雖然以上四個屬性在Smarty3.0版本之後被宣告為私有屬性,但是其受到魔術方法__set與__get的影響,依然可以在類外訪問。
__set與__get魔術方法功能:
當我們訪問一個不存在或私有屬性時,系統會自動呼叫__set與__get進行設定與獲取操作。
特別注意:雖然可以通過以上方式訪問私有屬性,但是不建議這樣去使用,如果想設定相關的路徑資訊,可以採用如下四個方法進行替代:
① setTemplateDir() :設定模板目錄
② setCompileDir() :設定編譯目錄
③ setConfigDir() :設定配置目錄
④ setCacheDir() :設定快取目錄