如何将smarty安装到MVC架构中(代码示例)

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

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

首先是composer.json

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

Models/Users.php

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

Controllers/UserController.php

<?phpnamespace AppControllers;use AppModelsUsers;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教程!

相关文章 大家在看