当前位置:首页 > Laravel > Laravel框架之模板引擎的工作原理

Laravel框架之模板引擎的工作原理

Laravel框架之模板引擎的工作原理

知识点 1.模板引擎三个基本功能 2.模板引擎常用基本语法


1.模板引擎三个基本功能

  • 变量赋值与显示

  • 基本的流程控制(循环/分支)

  • 外部文件引入


2.模板引擎常用基本语法

  • compact(): 将多个变量转为关联数组

  • extract(): 将关联数组拆分为独立变量

  • 流程控制替代语法:

    • if/switch/for/while/foreach

    • 左'{': 换成 ':' 号

    • 右'}': 换成 'endif/endswitch/endfor/endwhile/endforeach'

    • 目的是消灭php模板文件中的大括号,使php代码与html代码更加优雅的组合在一起

  • 分支替换语法:

<?php if (true): ?>
...
<?php endif; ?>

---------------------------------

<?php if (true): ?>
... 
<?php elseif(true): ?>
... 
<?php else: ?>
...
<?php endif;?>

-----------------------------------

<?php switch($var): ?>
<?php case 1: ?>
// 代码块 
// ...
<?php endswitch; ?>
  • 循环替换语法:

<?php for($i=0;$i<$n;$i++): ?>
... 
<?php endfor;?>

-----------------------------------

<?php while($i<$n): ?>
... 
<?php endwhile;?>

-----------------------------------

<?php foreach($arr as $key=>$value): ?>
... 
<?php endforeach;?>
  • 引入外部文件

<?php

include __DIR__ . '/hello1.php';
include_once __DIR__ . '/hello2.php';

require __DIR__ .'/demo1.php';
require_once __DIR__ .'/demo2.php';

源码演示

1.创建控制器:

  • php artisan make:controller admin/StuController

2.demo1()方法

public function demo1()
    {
        $title = '模板引擎演示';
        $site = 'php中文网';
        $isShow = true;     // 显示导航
//        $isShow = false;  // 显示请登录
        $courses = ['php','mysql','javascript'];
        $right = '<a href="">php.cn</a> 版权所有';
        return view('home.demo1',[
            'title'=>$title,
            'site'=>$site,
            'isShow' => $isShow,
            'courses'=>$courses,
            'right'=>$right
        ]);

        $varList = ['title','site','isShow','courses','right'];
        return view('home.demo1',compact($varList));
    }

3.路由: web.php

//1. 模板引擎的工作原理
Route::any('admin/demo1', 'admin\StuController@demo1');

4.模板: home/demo1.php

<?php include __DIR__ . '/inc/header.php'; ?>
<body>
<h4>站点名称: <?=$site?></h4>
<ul>
    <?php foreach($courses as $course):?>
    <li>课程名称: <?=$course?></li>
    <?php endforeach;?>
</ul>
<?php include __DIR__ .'/inc/footer.php'; ?>

5. 被包含的公共头部与底部文件: views/inc/

inc/header.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?=$title?></title>
</head>
<?php if ($isShow):?>
<a href="">首页 | </a>
<a href="">视频 | </a>
<a href="">社区 | </a>
<a href="">直播</a>
<?php else: ?>
<p><a href="">请登录</a></p>
<?php endif; ?>

inc/footer.php

<p><?=$right?></p>
</body>
</html>


免责声明:部分文章信息来源于网络及网友投稿,本网站只负责文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本网站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。烛光驿站欢迎捐赠赞赏

权益
版权所有:© 2018 www.sjzphp.cn
网站备案:冀ICP备17012435号-2
联系邮箱:guotaoi@foxmail.com