Thinkphp5讲解
- 极地挑战
- 2026-02-22 02:13:58
- 8074
Thinkphp5讲解
一、简介
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简 化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的 代码的同时,也注重易用性。遵循 Apache2 开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允 许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。
ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核 心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、 日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑 商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)。
主要特征:
规范:遵循PSR-2、PSR-4规范,Composer及单元测试支持; 严谨:异常严谨的错误检测和安全机制,详细的日志信息,为你的开发保驾护航; 灵活:减少核心依赖,扩展更灵活、方便,支持命令行指令扩展; API友好:出色的性能和REST支持、远程调试,更好的支持API开发; 高效:惰性加载,及路由、配置和自动加载的缓存机制; ORM:重构的数据库、模型及关联,MongoDb支持
二、安装thinkphp
ThinkPHP5 的环境要求如下:
PHP >= 5.4.0 PDO
PHP Extension MBstring
PHP Extension CURL
PHP Extension
严格来说, ThinkPHP 无需安装过程,这里所说的安装其实就是把 ThinkPHP 框架放入 WEB 运行环境(前 提是你的WEB运行环境已经OK),可以通过下面几种方式获取和安装ThinkPHP。
一、官网下载安装 获取 ThinkPHP 的方式很多,官方网站(http://thinkphp.cn)提供了稳定版本或者带扩展完整版本的下载。
开发规范
命名规范
ThinkPHP5 遵循 PSR-2 命名规范和 PSR-4 自动加载规范,并且注意如下规范:
目录和文件 目录使用小写+下划线; 类库、函数文件统一以 .php 为后缀; 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名; 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写); 函数和类、属性命名 类的命名采用驼峰法(首字母大写),例如 User 、 UserType ,默认不需要添加后缀,例如 UserController 应该直接命名为 User ; 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip ; 方法的命名使用驼峰法(首字母小写),例如 getUserName ; 属性的命名使用驼峰法(首字母小写),例如 tableName 、 instance ; 以双下划线“”打头的函数或方法作为魔法方法,例如 `call 和 __autoload`; 常量和配置 常量以大写字母和下划线命名,例如 APP_PATH 和 THINK_PATH ; 配置参数以小写字母和下划线命名,例如 url_route_on 和 url_convert ; 数据表和字段 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name 字段,不建议使用驼峰和中文作为数据表字段命名。 应用类库命名空间规范 应用类库的根命名空间统一为app(可以设置 app_namespace 配置参数更改); 例如: app\index\controller\Index 和 app\index\model\User 。
目录结构
常用的目录结构
入口文件
pubic/index.php
入口文件 用户请求的PHP文件,负责处理一个请求(注意,不一定是URL请求)的生命周期,最常见的入口文件就是 index.php ,有时候也会为了某些特殊的需求而增加新的入口文件,例如给后台模块单独设置的一个入口 文件 admin.php 或者一个控制器程序入口 think 都属于入口文件。
应用目录application
模块目录 index
一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都有自己独 立的配置文件、公共文件和类库文件。
控制器controller
控制器 index.php
操作(方法)
一个控制器包含多个操作(方法),操作方法是一个URL访问的最小单元。
从上到下的路径依次是
三层 控制器 模型 视图
其中model和view是需要自己建立的
默认走的路径是
从入口文件出发 public/index.php(入口文件)
public/index.php(入口文件)/index(模块)/index(控制)/index(操作 方法)
应用的配置文件
如何开启错误调试模式
控制器和视图的关系
如何开启错误调试模式
登录功能的实现
使用mysql设计数据表
并插入测试数据
设置提交地址
index.php控制器中
接收数据验证
public function add(){
$data= input();//input 接收用户提交的表单数据 其实代替的是 $_GET 和 $_POST
//在thinkphp中不建议使用$_GET 和 $_POST 这种原生的写法
/* print_r($data);*/
//在控制器中实例化模型层
$res=model("User")->getOne($data);//此处的$data 就是用户提交的所有的数据
//model 代表模型的意思 调用它里面的 getOne($data) 传入的条件 支持数组形式
echo model('User')->getLastSql();//把这一句话加上看有输出吗?
//getlastsql得到上一条执行的sql语句
if($res){
//笑脸
$this->success("登录成功",'adduser');//页面跳转 参数1 提示信息 参数 要跳转的地址
}else{
//哭脸
$this->error("用户名或密码输入有误");
}
/* print_r($res);*/
}
添加功能的实现
1、控制器中书写方法 渲染页面
//添加功能 ① 书写方法渲染页面
public function adduser(){
return view();//渲染页面
}
2、新建一个hml文件
这是用户的添加页面
3、在控制器中接着书写接收数据添加数据的功能
//添加用户的功能
//执行添加功能的操作
public function addUserdo(){
$data= input();//接收数据
$res= model("User")->addOne($data);
echo model("User")->getLastSql();//输出上一条sql语句
if($res){
$this->success("添加成功",'show');
}else{
$this->error("添加失败");
}
}
4、在模型层熟悉添加一条的方法
//添加数据 ③在模型层中书写添加的方法
/**
* 添加一条的方法
* @param $data
* @return int|string 受影响的条数
*/
public function addOne($data){
return $this->insert($data);//thinkphp5中插入数据的关键字是insert
}
页面跳转在控制器中
$this->success("添加成功",'show');//参数1 提示信息 参数 跳转的地址
$this->error("添加失败")
在HTML页面中使用
{:url('addUserdo')} addUserdo 跳转的地址
常见错误
路径不全的问题
数据库没有配置
密码书写有误
no 没有写密码