模板引擎翻译 好用的php模板,非常好用的PHP模板引擎

日期:2023-03-11 12:39:36 / 人气: 563 / 发布者:成都翻译公司

什么是模板引擎php模板引擎由来已久,比如老大哥smarty。毕竟现在mvc已经很成熟,很多框架都有自己的模板引擎。毕竟模板引擎只是编译一次,把相应的模板语法利用正则替换成php语句,然后存储成php文件就完成任务了,后续的运行其实是载入php文件。为什么要用模板引擎模板引擎比较看一下比较主流的模板引擎的使用我是内容模板,但是我用parent标签,调用了布局文件中content的内容

什么是模板引擎

顾名思义,这是一个模板解析工具。他的诞生是为了解决mvc的问题,实现数据和显示的分离。php模板引擎历史悠久模板引擎翻译,如老大哥smarty。很少有人用过。毕竟mvc现在已经很成熟了,很多框架都有自己的模板引擎。例如,Symfony 的树枝,Laravel 的刀片。

性能损失?

当模板引擎开始出现时,很多人质疑并认为存在性能问题。但实际上,这是没有必要的。毕竟模板引擎只编译一次,使用正规规则将相应的模板语法替换为php语句,然后存储为php文件就完成了任务。后面的操作其实就是加载php文件。出来的只是判断是否有编译好的文件。对于当前的计算速度可以忽略。

为什么要使用模板引擎

1 去掉繁琐的php标签模板引擎翻译,从而提高代码的可读性

2 将数据处理与视图显示分开,视图只负责显示和基本逻辑判断

3 良好的视图拆分和组织结构

模板引擎对比

除了目的之外,还有一个不能忽视的问题,是否易学。如果一个模板引擎需要几个小时来学习,这样的学习成本太高了。作为一种工具,它应该简单易学,其次是满足需求和完善的功能。

看看更多主流模板引擎的使用

twig,我喜欢他的语法,通俗易懂

基本语法

{% for user in users %}

* {{ 用户名 }}

{% 别的 %}

没有找到用户。

{% 结束为 %}

指定布局文件

{% 扩展 "layout.html" %}

定义显示块

{% 块内容 %}

页面内容...

{% endblock %}复制代码

再看刀刃

应用名称-@yield('title')

@section('侧边栏')

这是大师的侧边栏。

@展示

@yield('内容')

@extends('layouts.app')

@section('title','页面标题')

@section('侧边栏')

@父母

这将附加到主侧边栏。

@endsection

@section('内容')

这是我的身体内容。

@endsection复制代码

从上面可以看出,blade 比 twig 复杂得多。如果不看说明书,是看不懂上面代码的意思的。为什么不厌倦smarty,因为它更复杂,现在使用它的人更少。

我们总结如下,一个模板引擎应该具备以下功能

1 数据块block/section 这是一个非常强大的功能,可以灵活控制每个显示块

2 继承机制parent使用父继承来调用布局中的内容块

3 多文件组合include 使用include将多个模板组合在一起,实现多种不同场景下的代码复用

4 灵活的变量函数和常量使用

5 优雅的标签逻辑控制 可以充分利用ide软件的代码提示和自动补全功能,无需安装特殊插件

6 模板自动监控 模板更新时,刷新页面,模板引擎会自动编译显示*新内容

今天的主角

在具备了上面总结的所有功能的前提下,我们来看看今天的主角是如何解决易学易读两个问题的。

布局

默认标题

我是布局模板内容

{{ $title }}

我是内容模板,但是我使用父标签来调用布局文件的内容

复制代码

是不是特别清爽?定义不同的块标签,灵活控制内容和位置,内容模板的内容默认会覆盖布局文件的同一个块块。您还可以使用 parent 标记来调用内容模板中布局文件中的内容。

使用html标签编写代码可以实现所有ide软件中的代码不完整。以上代码实现了显示块的定义,内容模板显示块覆盖了布局模板,以及include的继承和外部引入。

使用可变常数函数

当然,除了模板的整体管理,模板中一定要有流程控制和变量输出。

//多变的

{{ $title }}

// 功能

{{ 日期('Ym-d')}}

//常用常量与变量用法一致,需要用{{}}括起来

{{ CONST_VAR }}

//直接使用两边下划线的常量

//会被翻译成 <?php if(defined('__APP__')){echo __APP__;}else{echo'__APP__';} ?>

__应用程序__

// 三目操作

{{ $a==0? 0: 1 }}

过程控制

如果判断

1)>

大于 1

等于 1

小于 1

复制代码

for循环

{{ $i }}

普通课程for循环复制代码

因为在

{{ $item['title'] }}

相当于 foreach($array as $item)

{{ $index }}=>{{ $item['title'] }}

相当于 foreach($array as $index=>$item)

foreach对应原来的php写法但是换成了php标签形式

{{ $item['title'] }}

$item)>

{{ $index }}=>{{ $item['title'] }}

复制代码

在php中初始化include "../Template.php";

$view = 新模板();

$view->templatePath ='./template/';// 模板路径以/结尾

$view->compilePath ='./compile/';// 编译后的文件存放路径以/结尾

$view->layout ='layout';// 布局文件在*后一个class目录下,如果不适用,可以定义为空字符串或者false

// 渲染模板

$view->render('index',[

'title'=>'测试页',

'内容'=>'内容',

'数组'=>[

1,2,3

]

]);

//清空缓存

//$view->clean();复制代码

相关阅读Relate

  • 法国签证营业执照翻译件模板 你与申根签证只有一条推送的距离
  • 江苏省增值税发票翻译模板 江苏税务局出口货物退(免)税申报管理系统软件
  • 肄业证书翻译模板 复旦大学学生学业证明文书管理细则(试行)
  • 四级英语作文模板带翻译 大学英语四级翻译模拟训练及答案
  • 社会某信用代码证翻译模板 js验证某社会信用代码,某社会信用代码 验证js,js+验证+社会信用代码证
  • 美国移民证件翻译模板 日语签证翻译聊聊身份证翻译模板
  • 翻译软件模板 人类史上*实用的的文档快速翻译指南
  • 江苏省增值税发票翻译模板 江苏出口货物退(免)税申报管理服务平台
  • 瑞士签证房产证翻译件模板 瑞士探亲签证—就读子女
  • 日语户口本翻译模板 户口本翻译价格_户口本翻译一般多少钱?
  • 模板引擎翻译 好用的php模板,非常好用的PHP模板引擎 www.chinazxzy.com/fymb/9045.html
    
    本站部分内容和图片来源于网络用户和读者投稿,不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系:chinazxzy@163.com,及时删除。
    Go To Top 回顶部
    • 扫一扫,微信在线