1.背景
最近由於公司Fleaphp框架使用了比較老的PHP模版引擎Smarty2,使得對接前端頁面時,解析某些特殊數據和數據邏輯處理上用得特別不順手,後發現Smarty3解決了很多Smarty2的不足,故因此把框架的模版引擎進行升級。
2.升級過程
首先到Smarty的官網下載3的版本,下載解壓Smarty3的核心文件夾lib,把lib文件夾重命名爲Smarty3,拉入到原Smarty2的同級目錄下,接着修改配置文件,把指向Smaty2目錄的配置信息修改爲Smarty3的目錄。
如果項目框架裏有繼承Smarty.class.php裏的Smarty類,可能需要進行進行改寫,因爲Smarty3丟棄了很多Smarty2的方法,或者說是升級了很多方法,並改寫了命名方式,比如register_function
,register_modifier
,如果你改寫的類裏有使用到這些方法,那麼只需要進行兩部分的修改。
1.在下載的Smarty3的核心文件下lib裏,我們可以看到有一個SmartyBC類,該類的作用就是爲了使Smarty3兼容Smarty2使用的一些舊方法,所以把繼承Smarty的文件修改爲繼承SmartyBC。
2.接着在把引用父類的構造函數 parent::__Smarty();
改寫 parent::__construct();
,因爲smarty2的版本使用的php3,4的老方式構造方法寫法,而在Smarty3我們可以發現所有類裏使用的都是新版的構造方法寫法。