Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。

如何将smarty安装到MVC架构中?

首先是composer.json

{  "require": {    "smarty/smarty": "^3.1"  },  // 自动加载  // 可以在composer.json的autoload字段找那个添加自己的autoloader  "autoload": {    "psr-4": {      "App\\Controllers\\": "Controllers/",      "App\\Models\\": "Models/",      "Tools\\": "Tools/"    }  }}

Models/Users.php

<?php// model层数据库操作演示namespace App\Models;class Users{    // 数据存入数据库演示    public function store()    {        echo 'store into database';    }    // 查询数据库演示    public function getUsername()    {        // 查询数据库        return 'test-data';    }}

Controllers/UserController.php

<?phpnamespace App\Controllers;use App\Models\Users;use Smarty;class UserController extends Smarty{    public function create()    {        echo 'User create';    }    public function getUser()    {        // 通过Model查询数据        $userModel = new Users;        $username = $userModel->getUsername();        echo 'username:'.$username;exit;        $this->setTemplateDir(dirname(__DIR__) . '/Views/');        $this->setCompileDir(dirname(__DIR__) . '/runtime/Compile/');        // 将$username显示在对应的一个HTML文件当中,并且显示出来        // 表现层 user/user.html        // 将变量发送给模板(html文件)        $this->assign('username', $username);        $this->assign('age', 20);        // 显示模板        $this->display('user/user.html');    }}

Views/user/user.html

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>Title</title></head><body>    <h2>        {$username}    </h2>    <h3>        {$age}    </h3></body></html>

在本机浏览器中访问

AM93J06]$@M9O(63L[~N1LS.png

更多相关php知识,请访问php教程!

更多相关文章

  1. 关于PHP+jQuery-ui拖动浮动层排序并保存到数据库实例
  2. 浅谈PHP连接MySQL数据库的三种方式
  3. PHP数据库框架Medoo1.6安装教程
  4. 如何解决php连接erp数据库失败
  5. 详解在PHP模板引擎smarty生成随机数的方法和math函数
  6. 一文读懂php设计模式之模板方法模式
  7. PHP连接MySQL数据库操作实现
  8. phpcms网站程序如何安装新的模板

随机推荐

  1. 使用jQuery从一个.NET网格拖动并拖放到另
  2. jquery判断滚动条距离顶部的距离
  3. 将jQuery集转换为HTML
  4. JQuery-Dialog(弹出窗口,遮蔽窗口)
  5. 非常好用的JQuery自动补全插件bigautocom
  6. 查询下拉框只显示年份(jquery年份插件)
  7. jQuery serialize()在IE中不使用ajax加载
  8. 解析jquery实现回车键提交表单
  9. jquery中的Datepicker控件如何默认显示日
  10. 在某个点停止固定位置滚动?