3.2版本并非3.1的一个小升级,而是一个大版本的更新。与3.1进行对比学习更容易掌握吧。
目录结构发生了改变
初始的目录结构
1 2 3 4 5 6
| www WEB部署目录(或者子目录) ├─index.php 入口文件 ├─README.md README文件 ├─Application 应用目录 ├─Public 资源文件目录 └─ThinkPHP 框架目录
|
Thinkphp中的目录结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ├─ThinkPHP 框架系统目录(可以部署在非web目录下面) │ ├─Common 核心公共函数目录 │ ├─Conf 核心配置目录 │ ├─Lang 核心语言包目录 │ ├─Library 框架类库目录 │ │ ├─Think 核心Think类库包目录 │ │ ├─Behavior 行为类库目录 │ │ ├─Org Org类库包目录 │ │ ├─Vendor 第三方类库目录 │ │ ├─ ... 更多类库目录 │ ├─Mode 框架应用模式目录 │ ├─Tpl 系统模板目录 │ ├─LICENSE.txt 框架授权协议文件 │ ├─logo.png 框架LOGO文件 │ ├─README.txt 框架README文件 │ └─ThinkPHP.php 框架入口文件
|
对比一下3.1版本的目录结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend 框架扩展目录 ├─Lang 核心语言包目录 ├─Lib 核心类库目录 │ ├─Behavior 核心行为类库 │ ├─Core 核心基类库 │ ├─Driver 内置驱动 │ │ ├─Cache 内置缓存驱动 │ │ ├─Db 内置数据库驱动 │ │ ├─TagLib 内置标签驱动 │ │ └─Template 内置模板引擎驱动 │ └─Template 内置模板引擎 └─Tpl 系统模板目录
|
3.1版本的前端模板文件是放在TPL目录里的,而3.2则放在View文件。
3.2版本采用命名空间
3.2版本全面采用命名空间方式定义和加载类库文件,有效的解决多个模块之间的冲突问题,并且实现了更加高效的类库自动加载机制。
由于新版完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载。
1 2 3
| namespace Org\Util; class File { }
|
系统会自动加载 ThinkPHP/Library/Org/Util/File.class.php
文件。
由于采用了命名空间的方式,原本需要手动导入类库文件的操作,现在已经不需要了。可以自动完成加载,已验证码为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import('ORG.Util.Image'); Image::buildImageVerify(4,1,'png',30,30,'code');
$config = array( 'fontSize' => 20, 'length' => 2, 'expire' => 60, 'imageW' => 70, 'imageH' => 35, 'reset' => false, ); $Verify = new \Think\Verify($config); $Verify->entry();
|
3.2版本无需配置分组,直接使用独立分组
在3.2中,例如建立了一个Home分组和Admin分组用来对应前端和后台。他们彼此之间不能相互访问,否则会报错。
1 2 3 4 5 6 7
| define('BIND_MODULE','Home');
define('BIND_MODULE','Home');
|
差别
大部分使用方法和3.1版本差别不大,加入了不少新的特性。例如可以切换数据库,连贯操作似乎变得更多了。并且高版本的php语法知识也在这个版本之中体现出来了。一方面再深入一下php原生语法的知识,另一方面再对命名空间的知识得补补。毕竟之后tp5还得用。。
Author:
zhhhy
Permalink:
http://yoursite.com/2019/03/12/thinkphp32/
License:
Copyright (c) 2019 CC-BY-NC-4.0 LICENSE
Solgan:
Do you believe in DESTINY?