看了一些開源系統(tǒng)的,簡單的總結(jié)一下php的模板及靜態(tài)原理。
先貼代碼,再做解釋。 index.php
template.php
代碼解釋見注釋。 把上面的兩個代碼放在同一個目錄下,然后訪問看看,目錄下面是不是多了一個HTML文件。這就是產(chǎn)生的靜態(tài)頁面,你可以把這個文件打開看看并和template.php比較一下。 總體原理很簡單,看完注釋就能明白個大概,不過這只是個基本的演示。如果是真正要使用到系統(tǒng)中,還需要完善以下問題。 1、緩存的靜態(tài)文件的過期及更新問題,上面的例子里,只要有緩存存在,就直接去讀。就算變量$var的值改變了,也不會更新內(nèi)容。所以實際使用時,在變量或模板改變時,更新緩存的靜態(tài)文件,或者通過一些方式設(shè)置緩存有效期,過期時重新生成。 2、功能分解,上面的例子,兩個頁面就演示了整個流程,為了便于在項目中使用,我們需要對上面頁面中涉及到的功能進行拆分,分別放在不同的函數(shù)里實現(xiàn)。比如,調(diào)用模板不可能只是一句require就搞定。讀緩存也應該進行細化,file_get_contents一句話是不行的。 3、模板拆分,應該充分發(fā)揮模板重用,不能說,一個php頁面對應一個模板,而應該是按功能分。比如,模板A是用來顯示新聞列表的,那這個模板,可以在任何顯示新聞列表的地方調(diào)用。而不應該定義為:模板A是news.php對應的的模板,這樣的話,比如:news.php里需要顯示一個新聞列表,index.php里用模板B,如果index.php里也需要顯示新聞列表,這兩塊模板就重復了。 大概想到這些。歡迎拍磚 |
|