thinkphp3.2.3版本文件目录及作用
Posted 奔跑的葛根
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp3.2.3版本文件目录及作用相关的知识,希望对你有一定的参考价值。
下载thinkphp3.2.3版本,解压缩后将文件夹名字改为thinkphp,然后放在www目录下,里面的文件夹和文件的名字和作用如下:(前面有Tab健的表示下一级,thinkphp是根目录)
//thinkphp //Application//写的程序都放在这里面,默认里面什么都没有。当从浏览器输入入口文件并运行后,这个文件夹里面就会出现下面的文件夹。 //Common//里面存放一些配置和方法 //Common //Conf //config.php//配置文件,可以在这里面修改配置。如果配置是整个运行程序的,就在这的配置文件里面写。 //Home//非常重要的文件夹,Home是一个模块。 //Common//里面放置一些自己写的函数 //Conf //Config.php//这个配置文件也可以用来写配置。如果配置文件是属于这个Home模块的,就在这里写配置。 //Controller//代表MVC的C层。意思是控制器。 //IndexController.class.php//控制器的命名规则一定要这么命名。驼峰法命名,控制器名称+Controller+class.php //Model//代表MVC的M层。意思是数据模型。 //View//代表MVC的V层。意思是视图。 //Runtime//里面包含程序运行时产生的一些文件 //Cache //Data //Logs //Temp //Public//存放一些公用文件 //ThinkPHP//TP框架核心文件都在里面,这个文件夹里面的内容尽量不要去修改。 //Common//里面存一些方法,外部的一些方法可以放在里面。 //Conf//配置文件所在的文件夹 //convention.php//thinkphp文件总的一个配置,要记住这个文件。 //Lang//语言包 //Library//里面包含了一些核心类 //Behavior //Org //Think//用的会比较多,里面放的是所有的类。 //Controller.class.php//所有控制器的父类 //Model.class.php//所有数据模型的父类 //Vendor //Mode//没有多大用处 //Tpl//里面放置的是一些TP框架的模板。也没有多大的用处。 //ThinkPHP.php//是thinkphp文件的一个类 //index.php//以前叫做thinkphp.php,是程序的入口文件 //localhost/thinkphp/index.php/Home/Index/index //这种访问方式是直接访问的方法,而不是访问的页面了。 //index.php是入口文件 //Home是模块名 //Index是控制器名称 //index是方法名 //tp框架4种url地址书写方式 //1.localhost/thinkphp/index.php?m=Home&c=Index&a=test //2.localhost/thinkphp/index.php/Admin/DengLu/test //3.localhost/thinkphp/Admin/DengLu/test //省略入口文件 //4.localhost/thinkphp/index.php?s=/Home/Index/test //SHOW_PAGE_TRACE=>true,//在配置文件里面写上这句话,代表开启trace信息。
ThinkPHP
php框架
真实项目开发步骤:
1. 多人同时开发项目,协作开发项目、分工合理、效率有提高(代码风格不一样、分工不好)
2. 测试阶段
3. 上线运行
4. 对项目进行维护、修改、升级(单个人维护项目,十分困难,代码风格不一样)
5. 项目稳定的运行阶段
6. 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)
问题:
1. 多人开发项目,分工不合理,(html php mysql)
2. 代码风格不一样,后期维护十分困难
3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费、人员浪费
4. 项目不能很好适应客户需求,牵一发而动全身。
其他相关框架
1. zendframework zend php语言公司发布的官方框架,重量级(功能多)
2. yii 美国华人开发的框架,xue qiang, qiang, 重量级框架,纯OOP框架
3. CI CodeIgniter 轻量级框架,开发速度快,部署灵活
4. cakephp 外国框架,重量级,速度慢
5. symfony 外国重量级框架
6. ThinkPHP轻量级框架,国人框架,入门容易
什么框架:
一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。
框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。
为什么使用框架
l 框架可以帮组我们快速、稳定、高效搭建程序系统
l 该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。
l 使用框架的过程中可以使得我们的注意力全部集中业务层面,而无需关心程序的底层架构。
【使用框架】
thinkphp.cn
thinkphp 3.2版本
【框架项目部署】
部署一个Shop项目,使用tp框架
步骤:
创建入口文件:
1. 在ThinkPHP目录下创建一个入口文件index.php
2. 访问入口文件的同时系统会自动把对应的应用目录文件Shop创建出来
3. 打开Home文件夹
【MVC模式】
M:Model 数据模型层,负责数据操作
V:View 视图层,负责显示视图
C:Controller 控制器,实现业务逻辑
【控制器访问及路由解析】
通过url地址get参数找到指定的控制器,并进行对应方法调用请求
http://网址/index.php?m=模块名称&c=控制器&a=方法
以上url地址信息代码不够优雅、不安全。
tp框架url地址可以由以下四种
1. http://网址/index.php?m=XX&c=XX&a=XX 基本get模式
2. http://网址/index.php/模块/控制器/操作方法 路径模式pathinfo
3. http://网址/模块/控制器/操作方法 rewrite重写模式
4. http://网址/index.php?s=/模块/控制器/方法 兼容模式
具体url地址模式设置(配置文件ThinkPHP/Conf/convertion.php)
URL_MODEL = 0/1/2/3 分别代表四种url地址模式
config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目录
这个文件在系统运行过程中会覆盖convertion.php的配置变量
include “convertion.php”;
include “config.php”; 后引入的文件要把先引入的文件配置变量给覆盖掉
我们系统有兼容4中url地址模式的使用
系统有的时候会自动创建url地址,它会根据当前模式进行url地址创建使用
快捷函数 U(); 创建url地址
通过url地址模式我们学习到了以下内容:
1. 我们学习到了配置变量(核心配置变量conversion.php、当前应用配置变量config.php)
2. 快捷函数U(“模块/控制器/方法”) 根据参数和url模式 创建对应的url地址
3. 把框架的模式调整为开发调试模式
【开发、生产模式】
开发调试模式:系统需要加载大概24个文件 index.php define(“APP_DEBUG”,true);
生产模式:系统只需要加载很少的大概7个文件 在入口文件
index.php中定义: define(“APP_DEBUG”,false);
节省了许多文件的开发、关闭的系统开销,节省资源
要在页面显示trace信息,需要在自己的配置文件中:
【控制器和对应方法创建】
控制器是MVC模式中的核心,tp默认有一个Index控制器:
Index控制器里面有一个操作方法:Index
我们在访问http://localhost:8080/Thinkphp/index.php入口文件的时候,会默认访问Index控制器下面的Index方法
如果要自己创建一个控制器Login:
1. 在\\Shop\\Home\\Controller文件夹下新建一个控制器文件LoginController.class.php
注意:文件命名规则,按照驼峰法命名
2. 打开该文件,在里面造控制器Login类
3. 如果要自定义操作方法,在控制器Login类里面加一个函数Login():
这样我们就完成了控制器和操作方法的建立,如果要访问我们刚才的Login控制器下的Login方法:
4. 控制器中如果要调用视图层中的模板:
这样再次访问,会发现报错:
原因:模板文件没有创建,这时候我们就要去创建模板文件
【视图模板文件创建】
视图模板文件存放发位置在:
里面没有模板文件
如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器:
然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法:
在login.html里面写入要显示的代码:
然后再次请求:
【url地址大小写设置】
默认是不敏感的:
在config.php里边对url大小写敏感进行设置
【空操作和空控制器处理】
空操作:就没有指定的操作方法
空控制器:没有指定控制器
http://网址/index.php/Home/User/login
http://网址/index.php/Home/User/hello 空操作
http://网址/index.php/Home/beijing/login 空控制器
空操作:
一般网站处于安全考虑不给用户提示任何错误信息
“空操作”本质意思:一个对象(控制器)调用本身不存在的方法
在OOP里边,对象调用本身不存在方法,处于用户体验比较好的角度考虑,我们可以在类里边制作一个魔术方法:function __call();
在tp里面控制器的父类:
父类中有个方法:
所以空操作有两种解决方案:
① 在对应的控制器里边制作一个方法,名称为”_empty”,这个控制器的空操作都会自动执行该方法。(推荐使用)
② 给空操作的名称制作一个同名的模板出来,系统会自动调用
thinkphp3.2.3版本文件目录及作用