真实项目开发步骤:php
问题:html
1. 多人开发项目,分工不合理,(html php mysql)mysql
2. 代码风格不同,后期维护十分困难sql
3. 项目生命周期十分短,项目生命没有延续性,形成资源浪费、人员浪费thinkphp
4. 项目不能很好适应客户需求,牵一发而动全身。数据库
其余相关框架设计模式
1. zendframework zend php语言公司发布的官方框架,重量级(功能多)浏览器
2. yii 美国华人开发的框架,xue qiang, qiang, 重量级框架,纯OOP框架php框架
3. CI CodeIgniter 轻量级框架,开发速度快,部署灵活架构
4. cakephp 外国框架,重量级,速度慢
5. symfony 外国重量级框架
6. ThinkPHP 轻量级框架,国人框架,入门容易
什么框架:
一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。
框架能够节省咱们50-60%的工做量,咱们所有精力都集中在业务层次。
为何使用框架?
1.框架能够帮组咱们快速、稳定、高效搭建程序系统
2.该系统因为框架的使用使得自己的维护性、灵活性、适应客户需求方面获得最大化的加强。
3.使用框架的过程当中可使得咱们的注意力所有集中业务层面,而无需关心程序的底层架构。
1. 解压后thinkphp文件夹中的文件,入口文件换成 index.php
2. conf 配置文件夹
3. library 核心资源库中
4. library 核心资源库中核心文件 Think
1. 打开index.php入口文件,将原来的Application改为JiaoWu
2. 访问入口文件的同时系统会自动把对应的应用目录文件Shop建立出来
3. 打开Home文件夹
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
二、三、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中添加一句代码: