2013-09-05 54 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