Thinkphp 框架基础
ThinkPHP
一、php框架介绍
真实项目开发步骤:
- 多人同时开发项目,协作开发项目、分工合理、效率有提高(代码风格不一样、分工不好)
- 测试阶段
- 上线运行
- 对项目进行维护、修改、升级(单个人维护项目,十分困难,代码风格不一样)
- 项目稳定的运行阶段
- 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)
问题:
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%的工作量,我们全部精力都集中在业务层次。
为什么使用框架?
1.框架可以帮组我们快速、稳定、高效搭建程序系统
2.该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。
3.使用框架的过程中可以使得我们的注意力全部集中业务层面,而无需关心程序的底层架构。
二、Thinkphp 3.2版本介绍
1. 解压后thinkphp文件夹中的文件,入口文件换成 index.php

2. conf 配置文件夹

3. library 核心资源库中

4. library 核心资源库中核心文件 Think

三、框架项目部署
1. 打开index.php入口文件,将原来的Application改成JiaoWu

2. 访问入口文件的同时系统会自动把对应的应用目录文件Shop创建出来

3. 打开Home文件夹

四、 MVC模式
MVC: Model 模型 模型(数据)层 View 视图 视图层 Controller控制器 逻辑层
M:操作数据(数据连接,数据访问)
V:提供显示模板
C:实现业务逻辑
三者关系如图所示:

MVC:约定胜于配置
五、 控制器访问及路由解析
controller文件夹下:
控制器的命名方式:IndexController.class.php -----Index是控制器的名称
namespace:命名空间,相当于文件目录
public function index 中index称为某个控制器下的操作(action)
action:操作,放在控制器里面的方法
之前访问的方式:访问的具体页面
MVC访问的方式:访问控制器下的操作(方法),不是一个具体页面
5.1 mvc四种访问方式:
访问步骤:
1.找到入口文件index.php
2.再找模块、控制器、方法名(操作)
1. http://网址/index.php?m=XX&c=XX&a=XX 基本get模式
例子1:

浏览器地址:http://localhost:8080/thinkphp/index.php?m=Home&c=index&a=index
结果: 
例子2:

浏览器地址:http://localhost:8080/thinkphp/index.php?m=Home&c=index&a=Login
结果: 
2. http://网址/index.php/模块/控制器/操作方法 路径模式pathinfo(推荐使用这种方式)
http://localhost:8080/thinkphp/index.php/Home/index/Login
3. http://网址/模块/控制器/操作方法 rewrite重写模式
http://localhost:8080/thinkphp/Home/index/Login
4. http://网址/index.php?s=/模块/控制器/方法 兼容模式
http://localhost:8080/thinkphp/index.php/?s=Home/index/Login
http://localhost:8080/thinkphp/?s=Home/index/Login
2、3、4 结果:welcome to login
5.2 具体url地址模式设置(配置文件ThinkPHP/Conf/convertion.php)

这里的控制模式不是来控制访问的,是来控制生成的
如何修改配置?
不要在原文件中修改,而是复制到自己的项目文件中进行修改
1.在JiaoWu中,找到home文件夹下conf文件夹中的config.php

2.在IndexController.class.php中,创建一个路径
U(): 制作url地址的快捷函数

运行结果: 
注意: 如果是在当前模块的当前控制器下,可以只写方法
如果是在当前模块的其他控制器下,要写上控制器和方法
如果是在其他模块下,模块、控制器、方法名(操作)都要写
3.修改配置数值:
'URL_MODEL' => 0,
运行结果:/thinkphp/index.php?m=Home&c=index&a=Login
'URL_MODEL' => 2,
运行结果:/thinkphp/Home/index/Login.html
'URL_MODEL' => 3,
运行结果:/thinkphp/index.php?s=/Home/index/Login.html
5.3 控制器中如果要调用视图层中的模板:
现在在控制器中有一个控制器是IndexController.class.php,里面有个方法是public function index()
在view文件下有个index.html文件,

IndexController.class.php中:

index.html文件:

运行结果:

原因:上面两者不是相互对应的,模板文件没有创建正确,这时候我们就要去创建模板文件
如何正确创建模版:
如果我们想要访问index控制器中的index方法,首先我们要创建一个index控制器对应的模板文件夹,该文件夹就对应着index控制器:

在index.html里面写入要显示的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<h1>主页面</h1>
</body>
</html>
运行结果:

六、开发、生产模式
开发调试模式:系统需要加载大概30个文件 index.php define(“APP_DEBUG”,true);

生产模式:系统只需要加载很少的大概12个文件 在入口文件
index.php中定义: define(“APP_DEBUG”,false);
节省了许多文件的开发、关闭的系统开销,节省资源

开发模式时会出现 commom~runtime.php文件,调试模式则没有

要在页面显示trace信息,需要在自己的配置文件config.php中添加一句代码:

Thinkphp 框架基础的更多相关文章
- ThinkPHP框架基础
ThinkPHP 一.php框架基础介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维 ...
- 6月13 ThinkPHP框架基础
ThinkPHP 一.php框架基础介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维 ...
- ThinkPHP框架基础知识一
ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来 ...
- ThinkPHP框架基础知识二
一.空操作和空控制器处理 空操作:没有指定的操作方法:空控制器:没有指定控制器,例如: http://网址/index.php/Home/Main/login 正常 http://网址/index. ...
- ThinkPHP框架基础3
连接数据库 把convertion.php数据库相关的设置复制到config.php 在config.php做数据库连接配置,设置好数据 制作model模型 a) model本身就是一个 ...
- ThinkPHP框架基础知识三
一.JS文件与Css文件存放位置 其实JS与Css文件放在任意位置都可以找到,只要路径正确就行. 在TP框架中我们访问的所有文件都要走入口文件index.php,相当于访问的是index.php页面. ...
- ThinkPHP框架 基础 链接数据库
在第一次成功访问应用入口文件的时候,会显示出一个系统默认的欢迎页面并自动在APPLication文件夹里生成三个文件夹,如下,第一次访问应用文件路径:localhost/tr/index.php ...
- ThinkPHP框架的一些基础应用
这是俺滴师傅给俺传授了的知识,特在此分享. TP框架,做PHP开发的都应该有所耳闻.下面,我们就来说说入口文件的生成: 创建新项目时,首先,在目录文件下创建一个新的文件夹.然后将Thinkphp框架文 ...
- ThinkPHP讲解(一)框架基础
ThinkPHP框架知识点过于杂乱,接下来将以问题的形势讲解tp(ThinkPHP的简写) 1.tp框架是什么,为什么使用是它? 一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC ...
随机推荐
- Intra Chroma Prediction
帧内预测依赖于当前宏块的相邻宏块,如果任何一个相邻宏块不可用,那么会直接影响到当前宏块的预测方式. 那么宏块怎么才谓之可用? 满足以下几个条件的相邻宏块为不可用: 相邻宏块超出边界,即(x<0 ...
- rails console --sandbox出现的安装错误解决方案
rails中可以用使用console命令行来测试运行rails应用程序,但是采用源码编译安装的话可能缺少readline动态库,导致ruby无法使用这个库此时如果调用rails console(rai ...
- java中的进制转换方法
java中进行二进制,八进制,十六进制,十进制间进行相互转换 关键字: java 进制转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer ...
- Mysql 5.6主从同步配置与解决方案
主库IP:192.168.1.10 从库IP:192.168.1.11 centos的mysql配置文件在:/etc/my.cnf 1.主库配置编辑my.cnf: # 启用二进制日志 log_bin ...
- awk--动作(action)
摘要 在awk--简述中我们讲到awk是由pattern-action组合而成的,关于pattern我们已经awk--模式(pattern)在讲述,接下来就来看下awk的action. 动作是什么 我 ...
- python_Opencv_图像的基础操作
目标 获取像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 为图像扩充边缘 几乎所有以上的操作,与Numpy 的关系都比与OpenCV 的关系更加紧密,因此熟练Numpy ...
- Lenovo G40-30 Install win7
SATA Controller mode 两种硬盘模式,如果装XP应该要选第二种模式,兼容:据说ACHI比IDE模式性能好,开机能快点, 装Win7,两种模式都可以,只不过装Win7一般人都用ACHI ...
- PHP读取文件内容的三种方式
<?php // 第一种读取方式 header("content-type:text/html;charset=utf-8"); // 文件路径 $fileA = " ...
- Django 邮件推送 解决附件中文名字乱码
Django邮件功能,详情可看官方文档(https://docs.djangoproject.com/en/1.10/topics/email/). 最近做这个功能时遇到的问题,发送附件,收到后中文名 ...
- 负载均衡之DNS轮询
大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡.下图的例子是:有3台联通服务器.3台电信服 ...