• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

构建PHP框架构建模版引擎

php 搞代码 4年前 (2022-01-23) 22次浏览 已收录 0个评论

其实关于PHP应不应该使用模版引擎,网上也有不少争论,在这里罗列一些使用模版引擎的优点。

安全,比如默认转义输出

可读性好

相关内容可以参考一下知乎的讨论

PHP 模板引擎有多大意义?

为什么PHP中ThinkPHP有做类似模板引擎的东西?smarty也是?这些到底有何用?

首先末来确定一下思路,我们先要确定在模版中使用怎样的写法,参考 L~来1源gaodai#ma#com搞*代#码1网搞代gaodaima码aravel 的 Blade 模板,定义如下几种简单的写法。

输出变量值

{{ }} 表达式的返回值将被自动传递给 PHP 的 htmlentities 函数进行处理,以防止 XSS 攻击。

Hello, {{ $name }}!

输出未转义的变量值

Hello, {!! $name !!}!

If 表达式

通过 @if、@elseif、@else 和 @endif 指令可以创建 if 表达式。

@if (count($records) === 1)    I have one record!@elseif (count($records) > 1)    I have multiple records!@else    I don't have any records!@endif

循环

@for ($i = 0; $i < 10; $i++)    The current value is {{ $i }}@endfor@foreach ($users as $user)    <p>This is user {{ $user->id }}</p>@endforeach@while (true)    <p>I'm looping forever.</p>@endwhile

引入其他视图

@include('view.name', ['some' => 'data'])

暂时先定义这么多,基本够用。如果有特殊的需要,可以自己添加,其原理基本是一致的,会写一个,其他的就都能写出来。

然后再考虑如何处理,我们定义出了这样的写法,PHP 是识别不了的,我们需要将它转化成 PHP 能够识别的样子。

举个最简单的例子,当我们拿到{{ $name }}这样一段内容时,我们只需要将它转化成<?php echo $name?>这样,就可以识别了,输出相应的变量值。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:构建PHP框架构建模版引擎

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址