ThinkPHP3.2基本知识

. ThinkPHP框架

1. 什么是框架

php框架是许多代码的集合,这些代码是程序结构的代码(并不是业务代码)代码中有许多函数、类、功能类包,框架的代码按照一定标准组成了一个有机的功能体,这个功能体里边有许多设计模式如MVC、单例、AR等等。

2. 不使用框架开发遇到的问题

① 代码编写没有统一规范,项目生命时间非常短不延续

② 一个小地方的修改会牵扯到全局变化,牵一发动全身

③ 不能很好满足客户各方面需求

3. 使用框架的好处

① 框架可以帮助我们快速稳定高效搭建程序系统

② 该系统由于框架的使用使得本身的维护性灵活性适应客户需求方面得到最大化的增强。

③ 使用框架的过程中可以使得我们的注意力全部集中在业务层面,而无需关心程序的底层架构。

④ 可以节省很多的代码工作量

4. 相关框架

① zendframework

php语言公司zend发布的官方框架,有许多OOP面向对象内容,功能非常丰富,重量级框架(高级语言、功能丰富)

重量级:① 语言级别(高级语言OOP)② 功能丰富

轻量级:① 语言级别(面向过程或有少许OOP)② 功能相对较少但是实用

高级语言:例如javaC++  是用类对变量、函数的封装

中级语言:例如C面向过程,是用变量、函数对中低语言代码的封装

(中低级)语言:例如汇编语言,比低级语言再高级一点的语言,是对二进制代码的封装

if---->000111   function----->11110001111

低级语言:二进制代码语言

② 
Yii

国人(华人)自己开发的框架,名字(xue qiang),重量级框架,纯OOP框架,该框架的特点是把代码的重用性发挥到了极致。速度非常快。外企使用量最多的框架之一

该框架思想来源于symfonyjquery等。

作者之前是prado框架的核心维护人员,维护该框架3年之久。

③ cakephp

CakePHP是一个运用了诸如ActiveRecordAssociation Data MappingFront ControllerMVC等著名设计模式的快速开发框架。该框架的主要目标是让各种层次的PHP开发人员都能快速灵活地开发健壮的Web应用。

symfony

Symfony是一个基于MVC模式的面向对象PHP5框架

⑤ ThinkPHP

轻量级框架。内部OOP和面向过程代码都纯在,是国人自己开发的框架。

ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了StrutsActionDao思想和JSPTagLib标签库)、RoRORM映射ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。 

5. 框架文件介绍

ThinkPHP3.2基本知识ThinkPHP3.2基本知识ThinkPHP3.2基本知识

二. 创建应用

开发项目

设定项目运行目录,并复制ThinkPHP目录过来:

ThinkPHP3.2基本知识

使用同一个thinkphp框架可以开发多个系统:

ThinkPHP3.2基本知识

shop应用创建index.php入口文件:

ThinkPHP3.2基本知识

index.php入口文件里边引入框架的接口文件:

ThinkPHP3.2基本知识

shop项目目录创建虚拟主机(apache)

ThinkPHP3.2基本知识

之后重启apache

 

hosts文件中做域名解析:

ThinkPHP3.2基本知识

在浏览器里边访问shop项目:

ThinkPHP3.2基本知识

第一次访问项目的时候,项目被自动创建出来对应的三个目录:

ThinkPHP3.2基本知识

第一次做项目请求,请求的是index.php索引文件

ThinkPHP3.2基本知识

该框架使用mvc设计模式,默认使用Index控制器的index操作方法

ThinkPHP3.2基本知识ThinkPHP3.2基本知识ThinkPHP3.2基本知识ThinkPHP3.2基本知识


.路由形式

什么是路由:

答:系统从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://网址/分组/控制器/操作方法

http://网址/Home/Index/index

④ 兼容形式

http://网址/index.php?s=/分组/控制器/操作方法

http://网址/index.php?s=/Home/Index/advert

以上四种模式除了第③种,其他的url模式都可以使用

ThinkPHP3.2基本知识

四. 创建控制器

mvc框架需要根据业务特点创建对应的不同控制器,

例如 UserController   GoodsController    OrderController  IndexController等等

五.view视图模板

1. 简单模板view调用

在控制器的方法中调用如下方法:

$this -> display();   //模板名称与当前操作方法的名称一致

$this -> display(模板名称);  //调用当前控制器对应目录指定名称的模板

$this -> display(控制器/模板名称);  //调用其他控制器下的具体模板文件

tp框架有两种模式:生成模式[默认]、开发调试模式

生产模式 错误提示不友好(开发调试模式错误提示较友好)

2. 已有模板与tp框架做结合

具体实现步骤

a. 复制模板文件(内容)View指定目录

b.复制cssimgjs静态资源文件到系统指定目录


c. 把静态资源(cssimgjs)文件的路径设置为“常量”信息(index入口文件设置) 

d. 在模板文件中通过常量引入静态资源(cssimgjs)文件

ad重复实现即可

2.1静态资源文件引入

cssimgjs文件拷贝到系统指定目录:

2.2 在模板中引入静态资源文件

<link href="路径设置" rel="stylesheet" type="text/css" />

路径设置:相对路径、绝对路径

在模板中需要通过绝对路径方式引入静态资源文件(css/img/js),绝对路径信息的编写、升级、维护不方便,就给其设置常量进行使用。

.后台页面搭建

1. 分组设置

项目里边有前台、后台

前台、后台本质上看都是“控制器”和“view视图”模板的集合

为了开发、维护比较方便要把前台、后台对应的控制器和视图模板分开存储

前台、后台分别存储的控制器和view视图模板的集合称为是一个“平台/分组”

 

分组:

同一个项目里边,由于业务规则的划分,有多个相关的功能模块,它们都有独立的控制器、view视图、配置文件、函数库文件等文件,为了开发维护方便,就给它们创建独立的分组出来,每个分组都有自己的控制器、view视图、配置文件、函数库文件。

如果还有其他的业务功能模块,也都是独立的,可以继续创建分组。

 

对分组进行访问:

http://网址/index.php/分组/控制器/操作方法