ThinkPHP支持传统的MVC(Model-View-Controller)模式以及流行的MVVM(Model-View-ViewModel)模式的应用开发
一、MVC
MVC
软件系统分为三个基本部分:业务模型(Model)、视图/用户界面(View)和控制器(Controller)ThinkPHP
是一个典型的MVC
架构
模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
控制器(Controller) - 负责转发请求,对请求进行处理。
视图(View) - 界面设计人员进行图形界面设计。
二、单应用模式访问
index.php 入口文件
index 控制器
index 操作
├─app 应用目录 │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─ ... 更多类库目录 │ │ │ ├─common.php 公共函数文件 │ └─event.php 事件定义文件 │ ├─config 配置目录 │ ├─app.php 应用配置 │ ├─cache.php 缓存配置 │ ├─console.php 控制台配置 │ ├─cookie.php Cookie配置 │ ├─database.php 数据库配置 │ ├─filesystem.php 文件磁盘配置 │ ├─lang.php 多语言配置 │ ├─log.php 日志配置 │ ├─middleware.php 中间件配置 │ ├─route.php URL和路由配置 │ ├─session.php Session配置 │ ├─trace.php Trace配置 │ └─view.php 视图配置 │ ├─view 视图目录 ├─route 路由定义目录 │ ├─route.php 路由定义文件 │ └─ ... │ ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─extend 扩展类库目录 ├─runtime 应用的运行时目录(可写,可定制) ├─vendor Composer类库目录 ├─.example.env 环境变量示例文件 ├─composer.json composer 定义文件 ├─LICENSE.txt 授权说明文件 ├─README.md README 文件 ├─think 命令行入口文件
三、安装视图
- 视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展
composer require topthink/think-view
- 视图目录可以在根目录,也可以在app应用目录
四、模版渲染
- 要使用View,必须先引入
think\facade\View
门面类 fetch
方法渲染页面
controller代码
<?php namespace app\controller; use think\facade\View; class Index{ public function index(){ return View::fetch(); } }
view代码
www.XXX.com/index.php/index(对应的是view下面的文件夹名)/index(对应的是index文件夹里面的文件名)
controller代码
namespace app\controller; use think\facade\View; class Index{ public function index(){ // 模板变量赋值 View::assign('name','欧阳克'); View::assign('email','oyk@php.cn'); // 或者批量赋值(数组) View::assign([ 'name' => '欧阳克', 'email' => 'oyk@php.cn' ]); // 模板输出 return View::fetch(); } }
view代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ThinkPHP6</title> </head> <body> 姓名:{$name} <br> 邮箱:{$email} </body> </html>
- 备:Index类对应
view
下面的目录 - 备:index方法对应
view
下面的目录里的静态文件五、模版变量
assign
方法赋值属于全局变量赋值- 模版输出
{$name}