ThinkPHP3.2基本知识
一. ThinkPHP框架
1. 什么是框架
php框架是许多代码的集合,这些代码是程序结构的代码(并不是业务代码)代码中有许多函数、类、功能类包,框架的代码按照一定标准组成了一个有机的功能体,这个功能体里边有许多设计模式如MVC、单例、AR等等。
2. 不使用框架开发遇到的问题
① 代码编写没有统一规范,项目生命时间非常短,不延续
② 一个小地方的修改会牵扯到全局变化,牵一发动全身
③ 不能很好满足客户各方面需求
3. 使用框架的好处
① 框架可以帮助我们快速、稳定、高效搭建程序系统
② 该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。
③ 使用框架的过程中可以使得我们的注意力全部集中在业务层面,而无需关心程序的底层架构。
④ 可以节省很多的代码工作量
4. 相关框架
① zendframework
php语言公司zend发布的官方框架,有许多OOP面向对象内容,功能非常丰富,重量级框架(高级语言、功能丰富)
重量级:① 语言级别(高级语言OOP)② 功能丰富
轻量级:① 语言级别(面向过程或有少许OOP)② 功能相对较少但是实用
高级语言:例如java、C++ 是用类对变量、函数的封装
中级语言:例如C,面向过程,是用变量、函数对中低语言代码的封装
(中低级)语言:例如汇编语言,比低级语言再高级一点的语言,是对二进制代码的封装
if---->000111 function----->11110001111
低级语言:二进制代码语言
②
Yii
国人(华人)自己开发的框架,名字(xue qiang),重量级框架,纯OOP框架,该框架的特点是把代码的重用性发挥到了极致。速度非常快。外企使用量最多的框架之一。
该框架思想来源于symfony、jquery等。
作者之前是prado框架的核心维护人员,维护该框架3年之久。
③ cakephp
CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该框架的主要目标是让各种层次的PHP开发人员都能快速灵活地开发健壮的Web应用。
④symfony
⑤ ThinkPHP
轻量级框架。内部OOP和面向过程代码都纯在,是国人自己开发的框架。
ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。
5. 框架文件介绍
二. 创建应用
开发项目
设定项目运行目录,并复制ThinkPHP目录过来:
使用同一个thinkphp框架可以开发多个系统:
给shop应用创建index.php入口文件:
在index.php入口文件里边引入框架的接口文件:
为shop项目目录创建虚拟主机(apache)
之后重启apache
在hosts文件中做域名解析:
在浏览器里边访问shop项目:
第一次访问项目的时候,项目被自动创建出来对应的三个目录:
第一次做项目请求,请求的是index.php索引文件
该框架使用mvc设计模式,默认使用Index控制器的index操作方法
三.路由形式
什么是路由:
答:系统从URL参数中分析出当前请求的分组(平台)、控制器和操作方法的过程就是“路由”。
tp框架路由共有4种形式:
① 基本get形式
http://网址/index.php?m=分组&c=控制器&a=操作方法
该方式是最底层的get形式、传统的参数传递方式,不时尚、不安全。
② pathinfo路径形式[默认方式]
http://网址/index.php/分组/控制器/操作方法
http://网址/index.php/Home/Index/advert
③ rewrite重写形式(伪静态技术)省略index.php入口文件
http://网址/Home/Index/index
④ 兼容形式
http://网址/index.php?s=/分组/控制器/操作方法
http://网址/index.php?s=/Home/Index/advert
以上四种模式除了第③种,其他的url模式都可以使用
四. 创建控制器
mvc框架需要根据业务特点创建对应的不同控制器,
例如 UserController GoodsController OrderController IndexController等等
五.view视图模板
1. 简单模板view调用
在控制器的方法中调用如下方法:
$this -> display(); //模板名称与当前操作方法的名称一致
$this -> display(模板名称); //调用当前控制器对应目录指定名称的模板
$this -> display(控制器/模板名称); //调用其他控制器下的具体模板文件
tp框架有两种模式:生成模式[默认]、开发调试模式
生产模式 的 错误提示不友好(开发调试模式错误提示较友好):
2. 已有模板与tp框架做结合
具体实现步骤:
a. 复制模板文件(内容)到View指定目录
b.复制css、img、js静态资源文件到系统指定目录
c. 把静态资源(css、img、js)文件的路径设置为“常量”信息(在index入口文件设置)
d. 在模板文件中通过常量引入静态资源(css、img、js)文件
后续a、d重复实现即可
2.1静态资源文件引入
css、img、js文件拷贝到系统指定目录:
2.2 在模板中引入静态资源文件
<link href="路径设置" rel="stylesheet" type="text/css" />
路径设置:相对路径、绝对路径
在模板中需要通过绝对路径方式引入静态资源文件(css/img/js),绝对路径信息的编写、升级、维护不方便,就给其设置常量进行使用。
六.后台页面搭建
1. 分组设置
项目里边有前台、后台
前台、后台本质上看都是“控制器”和“view视图”模板的集合
为了开发、维护比较方便要把前台、后台对应的控制器和视图模板分开存储
前台、后台分别存储的控制器和view视图模板的集合称为是一个“平台/分组”
分组:
同一个项目里边,由于业务规则的划分,有多个相关的功能模块,它们都有独立的控制器、view视图、配置文件、函数库文件等文件,为了开发维护方便,就给它们创建独立的分组出来,每个分组都有自己的控制器、view视图、配置文件、函数库文件。
如果还有其他的业务功能模块,也都是独立的,可以继续创建分组。
对分组进行访问:
http://网址/index.php/分组/控制器/操作方法