PHP笔记之Smarty模板引擎(1)

    科技2022-08-29  119

    目录

    模板引擎的工作原理

    1、如何实现HTML代码和PHP代码分离?

    2、如何完全去除视图文件中的PHP标记?

    3、常用PHP模板引擎介绍

    Smarty快速入门

    1、Smarty是什么?

    2、Smarty下载和目录结构

    3、实例:第1个Smarty案例

    Smarty配置

    1、Smarty左右定界符配置

    2、Smarty常用目录配置

    Smarty模板(视图)中的变量

    1、Smarty普通变量

    2、Smarty保留变量

    (1)Smarty页面请求保留变量(注:下面的变量是固定的)

    (2)访问PHP的预定义常量

    (3)Smarty时间戳保留变量

    3、Smarty配置文件变量

    (1)配置文件变量概述

    (2)定义配置文件

    (3)访问Smarty配置文件变量

    (4)配置文件分组


    主要内容:

     

     



    模板引擎的工作原理

    1、如何实现HTML代码和PHP代码分离?

    实现HTML代码和PHP代码分离的目的是:实现前端设计人员和PHP程序员的分离。

    多数Web开发人员要么是精通网页设计,能够设计出漂亮的网页外观,但是编写的PHP代码很糟糕;要么仅熟悉PHP编程,能够写出健壮的PHP代码,但是设计的网页外观很难看。具备两种才能的开发人员很少见。

    将PHP和HTML混合页面,分成两个独立的页面:

    一个是HTML静态页面(视图文件、模板文件),扩展名是.html,包含HTML、CSS、JS

    一个是纯PHP程序页面(控制器文件),扩展名是.php,主要PHP代码。

    运行时,将HTML文件代码,包含到PHP文件中。

    2、如何完全去除视图文件中的PHP标记?

    首先,视图中的典型PHP代码是这样的:<?php echo $name ?>再者,前端工程师能看得懂的、比较喜欢的HTML标签形式的代码是这样的:{$name}最后,我们把 {$name} 替换成 <?php echo $name ?>,就实现了PHP代码和HTML代码的完全分离。模板引擎的原理:就是替换,就是将 {$name} 转换成 <?php echo $name?> 才能被PHP识别并解析。如何替换呢?使用PHP替换函数str_replace(),将 ”{“ 替换成 ”<?php echo “,将”}”替换成”?>”。

    3、常用PHP模板引擎介绍

    Smarty,是模板引擎鼻祖。其它的模板引擎都是基 于Smarty开发的。Template LiteTinyButStrongXTemplateSavantphemplateDwooSugarTwig,symfony框架默认的模板引擎;FXL TemplateH2ons-templateBlade:laravel框架默认的模板引擎。

    Smarty快速入门

    1、Smarty是什么?

    Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

    2、Smarty下载和目录结构

     

    3、实例:第1个Smarty案例

    Smarty配置

    1、Smarty左右定界符配置

    在Smarty中,默认使用 "{" 和 "}" 作为变量的定界符。但这样,会与CSS、JS中的大括号冲突。左定界符:$smarty->left_delimiter = "string"右定界符:$smarty->right_delimiter = "string"

    2、Smarty常用目录配置

    目录类别

    默认目录

    修改方法

    查看方法

    Smarty默认模板目录

    ./templates

    $smarty->setTemplateDir()

    $smarty->getTemplateDir()

    Smarty默认配置目录

    ./configs

    $smarty->setConfigDir()

    $smarty->getConfigDir()

    Smarty默认编译目录

    ./templates_c

    $smarty->setCompileDir()

    $smarty->getCompileDir()

    Smarty默认缓存目录

    ./cache

    $smarty->setCacheDir()

    $smarty->getCacheDir()

    Smarty默认插件目录

    ./libs/plugins

    $smarty->setPluginsDir()

    $smarty->getPluginsDir()

    查看Smarty常用目录配置:Smarty类文件中的__construct()构造方法

     

    Smarty模板(视图)中的变量

    1、Smarty普通变量

    PHP中的所有变量,都可以在视图文件中使用;使用 $smarty->assign() 向Smarty模板传递普通变量;使用 $smarty->display() 显示指定的视图文件;在Smarty模板中,使用"[ ]"或点"."来访问数组元素;在Smarty模板中,使用"->"来访问对象的属性和方法。

    2、Smarty保留变量

    (1)Smarty页面请求保留变量(注:下面的变量是固定的)

    {$smarty.get} 访问$_GET数组{$smarty.post} 访问$_POST数组{$smarty.request} 访问$_REQUEST数组{$smarty.cookie} 访问$_COOKIE数组{$smarty.session} 访问$_SESSION数组{$smarty.server} 访问$_SERVER数组{$smarty.files} 访问$_FILES数组

    注:

    1.地址栏的?username=admin&password=123456是自己临时写的,为了测试Smarty保留变量

    2.controller.php中的$smarty与view.html中的$smarty没有任何关系,左边是自己定义的变量,右边是Smarty保留变量

    (2)访问PHP的预定义常量

    语法:{$smarty.const.预定义常量}

    (3)Smarty时间戳保留变量

    语法:{$smarty.now}

    3、Smarty配置文件变量

    (1)配置文件变量概述

    网站上有一些比较简单的变量信息,美工人员可以自行定义并调用。这样可以脱离程序员的依赖,工作比较有主动权。

    (2)定义配置文件

    配置文件默认目录:./configs设置配置文件目录:$smarty->setConfigDir()读取配置文件目录:$smarty->getConfigDir()配置文件扩展名:.ini或.conf配置文件中注释:#配置文件变量分组:[ ]语法格式:配置名 = 变量值变量不带$符号,变量值不带引号

    (3)访问Smarty配置文件变量

    载入配置文件:{config_load file = “配置文件路径”}语法格式一:{#配置文件变量名#}语法格式二:{$smarty.config.配置变量}

    (4)配置文件分组

    载入分组配置文件变量:{config_load file = “配置文件路径” section = “分组名”}

     

    Processed: 0.008, SQL: 9