2013-09-05 52 views
0

如果我想在PHP中對我的CMS實現更復雜的宏語言,可能的方法是什麼?目前我有一個使用preg_replace的宏解析器,您可以在cms頁面中調用宏,例如:{#GetPageName#}或{#GetUserName | UserID = 9#},你明白了。PHP宏語言?

目標是以一種可以指定變量並使用if語句的方式使用它,例如: {#如果GetPageName =='Home'{'我是主頁'}#}或{#var Name = GetCurrentUserName#}

將這樣的可能嗎?

謝謝你的任何見解。

回答

0

那肯定可以編寫自己的宏語言或模板引擎。問題是你想在這個項目上投入多少時間,以及你對這個項目有多大的野心。

在大多數情況下,更高效使用的東西已經存在,而不是重新發明輪子的。通過這種方式,您可以使用和學習先進的技術,一旦您掌握了它的工作原理,您將能夠編寫自己的版本或修改目前使用的內容,也許您最終將爲一個幫助整個社區的開源項目。

看看Smarty例如但不要停在那裏。做一些研究,看看有什麼可用的,以及擴展它適合你的用例。

+0

您好,感謝答案。所以你的意思是我應該停止使用我目前的宏「引擎」,並嘗試使用Smarty來代替?我的意思是 - Smarty就像我想要的宏引擎? – Enn

+0

那麼這真的取決於你想要擴展你的宏引擎的程度。當我閱讀你的文章時,Smarty就是一個很好的例子。我不知道有關CMS的足夠詳細信息,以便提供有關使用內容的建議,但可以參考[this](http://en.wikipedia.org/wiki/Comparison_of_web_template_engines)比較模板引擎以查看是否有一個符合你的需求。 – tim

+1

我想我並不十分理解Smarty的全部內容,但是如果我可以將我的宏觀方法轉換爲它,並將其與引擎的優點一起使用,那麼我肯定會給它一個鏡頭。謝謝你的所有信息,我很感激。 – Enn