一、ThinkPHP的介绍 //了解
MVC
M - Model 模型 工作:负责数据的操作
V - View 视图(模板) 工作:负责前台页面显示
C - Controller 控制器(模块) 工作:描述功能
框架
二、ThinkPHP核心文件介绍
├─ThinkPHP.php 框架入口文件
├─Common 框架公共文件
├─Conf 框架配置文件
├─Extend 框架扩展目录
├─Lang 核心语言包目录
├─Lib 核心类库目录
│ ├─Behavior 核心行为类库
│ ├─Core 核心基类库
│ ├─Driver 内置驱动
│ │ ├─Cache 内置缓存驱动
│ │ ├─Db 内置数据库驱动
│ │ ├─TagLib 内置标签驱动
│ │ └─Template 内置模板引擎驱动
│ └─Template 内置模板引擎
└─Tpl 系统模板目录
四、实验环境搭建
使用phpstudy或者其他php环境搭建工具
五、项目搭建
#项目目录结构及说明:
当我们实际部署网站的时候,目录结构往往由于项目的复杂而变得复杂。我们推荐的部署目录结构如下:
目录/文件 | 说明 |
---|---|
ThinkPHP | 系统目录(下面的目录结构同上面的系统目录) |
Public | 网站公共资源目录(存放网站的Css、Js和图片等资源) |
Uploads | 网站上传目录(用户上传的统一目录) |
Home | 项目目录(下面的目录结构同上面的应用目录) |
Admin | 后台管理项目目录 |
…… 更多的项目目录 | |
index.php | 项目Home的入口文件 |
admin.php | 项目Admin的入口文件 |
官方推荐结构
六、M V C 对应的文件夹
M -Model 编写model类 对数据进行操作
V -View 编写html文件,页面呈现
C -Controller 编写类文件(UserAction.class.php)
对应目录:
M 项目目录/应用目录/Lib/Model
V 项目目录/应用目录/Tpl
C 项目目录/应用目录/Lib/Action
七、v 和 c 的使用方法
TP中的输出有多种方式:
echo 方式(只有c的情况下 , 也是php原生输出方法)
通过display方法输出(v 和 c)
想要分配变量可以使用assign方法
例子1 直接使用display方法:
<?php // 位于 /Lib/Action/indexAction.class.php class IndexAction extends Action { public function show(){ //直接输出位于 /Tpl/Index/show.html 的静态页面 $this->display(); } ?>
例子2 为静态页面分配变量:
<?php // 位于 /Lib/Action/indexAction.class.php class IndexAction extends Action { public function show(){ //输出位于 /Tpl/Index/show.html 的静态页面 //并为变量分配一个名为data的名称方便页面展示 $name = 'guwei'; $this->assign('data',$name); $this->display(); } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>HELLO world</title> <body> <!-- 显示分配的变量 --> <div> <p>hello :{$data} </p></div> </body> </head>
为了防止“{}”在html中被错误解析我们可以在配置文件中修改他的标识符
进入/Conf/config.php
<?php /** TP配置 ThinkPHP在项目配置上面创造了自己独有的分层配置模式,其配置层次体现在: 惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以优先顺序从右到左。 */ return array( //'配置项'=>'配置值' 'DB_NAME' => 'test', //修改标识符的方法 'TMPL_L_DELIM' => '<{', 'TMPL_R_DELIM' => '}>', 'debug' => 'this is config', 'LOAD_EXT_CONFIG'=>'user', ); ?>
html代码做如下修改:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>HELLO world</title> <body> <!-- 显示分配的变量 --> <div> <p>hello :<{$data}> </p></div> </body> </head>
总结自: 兄弟连 赵桐正 视频