论PHP模板的简单高效实现-创新互联

大家都知道PHP是世界上最好的语言,PHP在项目开发中的灵活性是个非常重要的优点,非常适合经常变动的业务逻辑和页面内容,当然都离不开一个好用的模板引擎,市面上最常见的PHP模板引擎是smarty,但是smarty功能十分丰富,有些重量级了.
那有没有更好的模板引擎呢? 先来探讨一下模板引擎的几大特点: 书写简单,执行速度,逻辑表达,方便扩展等.从这几方面看最适合的模板引擎就是PHP本身了,所有的要求都能满足要求,不管是smarty还是其他的模板引擎,在执行速度,逻辑表达,方便扩展的方面都不可能超过PHP本身,因为他们都是PHP实现的.唯一的短板就是书写简单这一方面.
那我们怎么补齐这块短板呢? 其实完全可以自己实现一个模板引擎语法规则,然后配合上一个预编译过程即可,把自定义个的模板引擎语法,编译成原生PHP代码即可,既补足了书写简单的短板,也没有对执行速度,逻辑表达,方便扩展等方面有任何损失.并且编译只需一次,编译一次以后模板页面没有变动,再也不需要第二次处理,配合OPCODE缓存更加强大,更能享受到PHP版本升级带来的性能红利.
那怎么来实现呢? 在PHP页面中使用的最多的就是来输出一个变量内容,写起来键盘敲击次数还是比较多的.完全可以实用模板语法{{$row.title}}代替,从原来的28个字符减少到了14个字符,包括if else foreach include等模板语法,只需要一个正则替换,即可实现一个简单高效的模板引擎.
模板页面


{{foreach $rows as $i => $row}}

{{endforeach}}
{{$row["username"]}}{{$row["password"]}}

PHP页面

$row) { ?>



核心代码示意
// 此代码已被精简
$tmpl = preg_replace('/{{if (.+?)}}/', '', $tmpl);
$tmpl = preg_replace('/{{else}}/', '', $tmpl);
$tmpl = preg_replace('/{{elseif (.+?)}}/', '', $tmpl);
$tmpl = preg_replace('/{{endif}}/', '', $tmpl);
$tmpl = preg_replace('/{{foreach (.+?)}}/', '', $tmpl);
$tmpl = preg_replace('/{{endforeach}}/', '', $tmpl);
$tmpl = preg_replace('/{{include (.+?)}}/', '', $tmpl);
$tmpl = preg_replace('/{{(.+?)}}/', '', $tmpl);
好了,完美解决模板引擎的简单高效需求,还有什么自己的想法都可以添加进来哦!

成都创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都做网站、成都网站建设、成都外贸网站建设、成都网页设计、成都微信小程序、成都网站开发、成都网站制作、成都软件开发、APP应用开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:论PHP模板的简单高效实现-创新互联
URL标题:http://myzitong.com/article/icsoj.html