微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

<?PHP
namespace 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教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐