ThinkPHP5.0
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。
序言
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。
- ThinkPHP5.0官方手册
基础
开发规范
函数和类、属性命名 - 类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;
- 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;
- 方法的命名使用驼峰法(首字母小写),例如 getUserName;
- 属性的命名使用驼峰法(首字母小写),例如 tableName、instance;
- 以双下划线“__”打头的函数或方法作为魔术方法,例如 __call 和 \autoload;
目录结构
如果是mac或者linux环境,请确保runtime
目录有可写权限
目录结构和名称是可以改变的,尤其是应用的目录结构,这取决于你的入口文件和配置参数。
架构
架构总览
ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织。
入口文件
用户请求的PHP文件,负责处理一个请求(注意,不一定是URL请求)的生命周期,最常见的入口文件就是index.php
应用
应用在ThinkPHP中是一个管理系统架构及生命周期的对象,由系统的 \think\App类完成,应用通常在入口文件中被调用和执行
模块
控制器
每个模块拥有独立的MVC类库及配置文件,一个模块下面有多个控制器负责响应请求,而每个控制器其实就是一个独立的控制器类。
控制器主要负责请求的接收,并调用相关的模型处理,并最终通过视图输出。
模型
模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。
视图
控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。
生命周期
入口文件
用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。
引导文件
URL访问检测
应用初始化完成后,就会进行URL的访问检测,包括PATH_INFO检测和URL后缀检测。
入口文件
入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。
URL访问
ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]
模块设计
路由
路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。
域名路由
ThinkPHP支持完整域名、子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用。
控制器
控制器定义
1 |
|
控制器类文件的实际位置是application\index\controller\Index.php
控制器初始化
1 |
|
如果访问http://localhost/index.php/index/Index/hello
会输出
1 |
|
前置操作
跳转和重定向
重定向和跳转要继承Controller
页面跳转
系统的\think\Controller类内置了两个跳转方法success
和error
,用于页面跳转提示。
1 |
|
重定向
\think\Controller类的redirect方法可以实现页面的重定向功能。
$this->redirect(“http://localhost:8080/tp5/public/index.php");
请求
请求信息
如果要获取当前的请求信息,可以使用\think\Request类$request = Request::instance();
或助手函数$request = request();
输入变量
获取POST变量
1 |
|
获取SESSION变量
1 |
|
获取Cookie变量
1 |
|
数据库
连接数据库
基本使用
支持query(查询操作)和execute(写入操作)方法
1 |
|
查询构造器
查询数据
查询一个数据使用:
1 |
|
查询数据集使用:
1 |
|
添加数据
添加一条数据
1 |
|
添加多条数据
1 |
|
更新数据
Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
删除数据
1 |
|
视图
继承\think\Controller类
模板渲染
1 |
|
模板
包含文件
{include file=’模版文件1,模版文件2,…’ /}
内置标签
volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
资源文件加载
传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!