关于ThinkPHP
ThinkPHP国产、开源、面向对象、免费开源的MVC框架,诞生于2006年提倡大道至简的思想,什么是大道至简,什么事儿都要用最简单的方法办到,是单一入口框架;
特点:简易的MVC模式、丰富的查询语言、详尽的文档和中文注释;
首先因为PHP语言非常的易学,语法简单,学习周期短,运行速度快,跨平台性能优越,有成熟的框架,有比较完整的支持,目前主流技术都支持,受到了广大企业的欢迎;
在我们开发的过程中使用框架能大大提高我们的开发效率,在国内有很多PHP框架,比较常见的有ThinkPHP、Yii、Laravel等等,市面上中小型企业一般都是用ThinkPHP做开发;
ThinkPHP框架是基于MVC思想来写的,什么是MVC?
MVC是一种设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用应用程序被分成三个核心部件:模型(Model)、视图(View)、控制器(Controller),它们各自处理自己的任务,而不去受到其它的影响,这样的好处呢就是在应用程序开发的初期,视图的美工人员包括程序的编码人员他们各自进行各自的任务,而不会因为其它的原因耽误自己的进展,包括在后期进行改版的时候只需要改变视图而不需要改变控制器的逻辑,所以就大大加快了应用程序的开发;
ThinkPHP框架简介
1、什么是框架?
比如在生活中的框架,你去售楼部买房子的时候,买回来的是毛坯房,有一个大概的样子,有厨房,卫生间,卧室,客厅,那么拿到房子之后你可以按照你自己的思想去装修成你想要的样子;
那么代码中的框架,是程序结构代码的集合,而不是业务逻辑代码。集合中包含了许多类、函数和功能类包。这个集合是按照一定标准组成的功能体系。
2、为什么要使用框架?
可以帮助我们快速、高效搭建稳定的业务系统,可以是业务系统更加灵活,而且易维护,可以让我们更专注于系统的业务逻辑设计。
其实无论是经验丰富的开发人员,还是初级的开发者都会面临这个问题,比如你要快速的开发一个企业级的应用或者说做一个强大的管理系统的时候,我们就需要用到框架了,如果企业需要快速开发应用,那么也可以直接使用市面上免费开源的ERP(集成化管理信息系统)、CRM(客户关系管理)、CMS(内容管理系统);
ThinkPHP基础
1、建立一个简单项目了解框架的运行流程
// 应用入口文件
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
// 定义应用目录
define('APP_PATH','./Admin/');
//定义常用路径
define('CSS_PATH','./Public/Admin/css/');
define('JS_PATH','./Public/Admin/js/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
2、目录结构分析
应用目录:运行入口文件后生成相应的应用目录,目录结构层次非常清晰;
Application
├─Common 应用公共模块
│ ├─Common 应用公共函数目录
│ └─Conf 应用公共配置文件目录
├─Home 默认生成的Home模块
│ ├─Conf 模块配置文件目录
│ ├─Common 模块函数公共目录
│ ├─Controller 模块控制器目录
│ ├─Model 模块模型目录
│ └─View 模块视图文件目录
├─Runtime 运行时目录
│ ├─Cache 模版缓存目录
│ ├─Data 数据目录
│ ├─Logs 日志目录
│ └─Temp 缓存目录
框架目录:ThinkPHP的结构如下
├─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、ThinkPHP的配置文件
ThinkPHP在运行的时候首先加载框架的配置文件,然后再加载项目的配置文件;
框架的配置文件:ThinkPHP/Conf/convention.php
项目的配置文件:Application/Common/conf
在项目配置文件里使用键值对的方式定义配置文件,框架提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置,配置参数不区分大小写。
如果要使用自定义配置文件,需要在项目配置文件里面去加载进来
'LOAD_EXT_CONFIG'=>'user';
项目在运行的时候每次都会加载自定义的配置文件,作为一个了解,不推荐使用自定义的配置文件;
注意:
// 开启调试模式建议开发阶段开启
define('APP_DEBUG',true);
项目运行的时候会将配置文件(除了自定义配置文件)生成一个编译文件也就是缓存文件,会把这些配置项在首次运行的时候加载到Runtime文件下,如果没有开启APP_DEBUG,编译一次之后下次就不会再读取配置,项目部署上线之后关闭该模式,并删掉Runtime文件夹,然后重新运行,这样就可以避免项目运行的时候频繁读取配置文件,拖延网站打开速度;