thinkphp5基础(一)

# ThinkPHP基础(一)

## 1.学习目标

- 了解常用MVC框架

- 了解ThinkPHP5框架

- ThinkPHP5框架的安装

- 了解TP框架目录结构及开发规范

- 创建mvc

## 2. MVC介绍

##### 2.1 MVC定义

- MVC全名是Model View Controller,是模型(model)、视图(view)、控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个文件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,方便协作开发以及后期的维护。

##### 2.2 传统模式和MVC模式对比

- 传统的开发模式,是混编模式,要求程序开发者全才懂前端懂后端或前端在工作,后端在打麻将,后端在开发,前端闲的蛋疼,严重影响开发的工作效率。

- MVC分层开发模式,协同开发及后期维护方便,弊端就是比混编模式下代码多了,但是利大于弊。

##### 2.3 MVC的优势

- 耦合性低

- 重用性高

- 可维护性高

- 有利于软件的工程化

##### 2.4 MVC的变形

- 无Model模式的web开发,如企业官网

- 无View模式的API接口开发,如给APP写接口

- Model再分层和Controller再分层

##### 2.5 MVC三者之间的关系

## 3.常用开源MVC框架

- 国外主流开源框架:Laravel、CodeIgniter(ci)、cakePHP、ZendFramework、Symfony、yii等。

- 国内主流框架: ThinkPHP、FleaPHP等。

## 4.ThinkPHP简介

- ThinkPHP是一个免费开源的、快速简单的、面向对象的、轻量级PHP开发框架

- 创立于2006年初,遵循Apache2开源协议发布

- 秉承简洁实用的设计原则,注重易用性

- 拥有众多的原创功能和特性,在易用性、扩展性和性能方面不断优化和改进

- 已成长为国内最领先和最具影响力的WEB应用开发框架

##### 4.1 为什么选择ThinkPHP5?

- ThinkPHP5采用了全新的架构思想

- 优化了核心是一个颠覆性的版本

- 支持composer,git方法安装

- 对API进行了大量的优化更符合了现代web开发的方式

## 5. Thinkphp5的安装方式

- git

- composer

- 官网下载。

##### 5.1 git安装

```

github仓库地址:

应用项目:https://github.com/top-think/think

核心框架:https://github.com/top-think/framework

如果你访问github速度比较慢,可以考虑下面两个国内GIT仓库:

[ 码云 ]

应用项目:https://git.oschina.net/liu21st/thinkphp5.git

核心框架:https://git.oschina.net/liu21st/framework.git

[ Coding ]

应用项目:https://git.coding.net/liu21st/thinkphp5.git

核心框架:https://git.coding.net/liu21st/framework.git

```

- 首先克隆下载应用项目仓库

```

git clone https://github.com/top-think/think tp5

```

- 然后切换到tp5目录下面,再克隆核心框架仓库:

```

git clone https://github.com/top-think/framework thinkphp

```

- 两个仓库克隆完成后,就完成了ThinkPHP5.0的Git方式下载,如果需要更新核心框架的时候,只需要切换到thinkphp核心目录下面,然后执行:

```

git pull https://github.com/top-think/framework

```

##### 5.2 composer安装

- ThinkPHP5支持使用Composer安装,如果还没有安装 Composer,你可以按 Composer安装中的方法安装。

- 在 Linux 和 Mac OS X 中可以运行如下命令:

```

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

```

- 在 Windows 中,你需要下载并运行 Composer-Setup.exe。然后在命令行下面,切换到你的web根目录下面并执行下面的命令:

```

composer create-project topthink/think tp5 --prefer-dist

```

##### 5.3 官网下载

- 将下载的框架文件解压之后放入WWW文件夹中,然后访问http://localhost/public/index.php

- 出现以下页面就表示安装成功:

**注意**:以上版本,github版本是最新的版本,官网下载的是比较全,但不是最新的版本。本套教程以下载官网ThinkPHP5.0.10完整版做演示,其他版本大同小异。

## 6.Thinkphp5的框架结构目录

```

project 应用部署目录

├─application 应用目录(可设置)

│ ├─common 公共模块目录(可更改)

│ ├─index 模块目录(可更改)

│ │ ├─config.php 模块配置文件

│ │ ├─common.php 模块函数文件

│ │ ├─controller 控制器目录

│ │ ├─model 模型目录

│ │ ├─view 视图目录

│ │ └─ ... 更多类库目录

│ ├─command.php 命令行工具配置文件

│ ├─common.php 应用公共(函数)文件

│ ├─config.php 应用(公共)配置文件

│ ├─database.php 数据库配置文件

│ ├─tags.php 应用行为扩展定义文件

│ └─route.php 路由配置文件

├─extend 扩展类库目录(可定义)

├─public WEB 部署目录(对外访问目录)

│ ├─static 静态资源存放目录(css,js,image)

│ ├─index.php 应用入口文件

│ ├─router.php 快速测试文件

│ └─.htaccess 用于 apache 的重写

├─runtime 应用的运行时目录(可写,可设置)

├─vendor 第三方类库目录(Composer)

├─thinkphp 框架系统目录

│ ├─lang 语言包目录

│ ├─library 框架核心类库目录

│ │ ├─think Think 类库包目录

│ │ └─traits 系统 Traits 目录

│ ├─tpl 系统模板目录

│ ├─.htaccess 用于 apache 的重写

│ ├─.travis.yml CI 定义文件

│ ├─base.php 基础定义文件

│ ├─composer.json composer 定义文件

│ ├─console.php 控制台入口文件

│ ├─convention.php 惯例配置文件

│ ├─helper.php 助手函数文件(可选)

│ ├─LICENSE.txt 授权说明文件

│ ├─phpunit.xml 单元测试配置文件

│ ├─README.md README 文件

│ └─start.php 框架引导文件

├─build.php 自动生成定义文件(参考)

├─composer.json composer 定义文件

├─LICENSE.txt 授权说明文件

├─README.md README 文件

├─think 命令行入口文件

```

## 7.Thinkphp5的开发规范

```

01、目录使用小写+下划线的方式命名

02、类库函数文件均以 .php 结尾

03、类的文件名均以命名空间定义,且命名空间和类库文件所在的路径一致

04、类文件采用驼峰,首字母大写,其余文件为小写+下划线命名

05、类名和类文件名保持一致,采用驼峰命名,首字母大写

06、类采用驼峰命名,首字母大写不需要添加后缀

07、函数使用驼峰命名,首字母小写,如(getUserInfo)

08、属性名采用驼峰,首字母小写,如(tableName)

09、以双下划线__开头的函数或方法为魔术方法

10、常量以大写字母和下划线命名

11、配置参数以小写字母和下划线命名

12、表和字段采用小写+下划线的命名方式,不能以下划线开头

13、应用类库的命名空间统一为app(可以配置)

```

## 8.域名的配置

- 由于我们在wamp下一般不止放一个项目,www下一个文件里面就一个项目。导致我们开发时wamp/lamp/lnmp开发时设置的配置不同,造成在wamp环境下开发完好后,上线出现大小写、url路径等问题。为了避免这种情况的产生,所以我们在wamp环境下开发,配置好域名,同步线上访问路径。

##### 8.1 配置域名

- 1、找到apache安装目录下的,配置文件`httpd.conf`,把下面这项最前面的`#`去掉加载此项配置`Include conf/extra/httpd-vhosts.conf`

- 2、打开`conf/extra/httpd-vhosts.conf`文件,做以下配置

- 3、`C:\Windows\System32\drivers\etc`路径下,用编辑器打开`hosts`文件,添加一条如下配置:

```

127.0.0.1 think.com

```

- 4、因为我们有修改过apache服务器的内容,要使得这次修改的配置生效,重启服务器。

- 浏览器地址输入think.com,如下图所示,那么,域名配置成功。

##### 8.2 配置URL重写

- 比如需要访问index模块Index控制器index方法,路径需要写成:`http://think.com/index.php/index/index/index`,里面需要写一个入口文件,index.php入口文件,看上去非常的不优雅,那入口让这入口文件隐藏呢?

- 下面是配置apache服务器的操作流程,IIS、Nginx的配置参照框架开发手册:

- 1、打开服务器`httpd.conf`配置文件,加载重写`mod_rewrite.so`模块

- 2、httpd.conf文件中的AllowOverride None将`None`改为`All`

- 3、把下面的内容保存为`.htaccess`文件放到应用入口文件index.php的同级目录下

- 4、因为我们修改了服务器的内容,所以要重启服务器。

- 5、如上图所示,重写模式配置成功,入口文件index.php就隐藏完毕,当然啦,访问的时候如果有加index.php文件也可以正常访问。

##### 8.3 创建mvc模块

- 1、为了以后更好的理解路径,可以把应用项目的名称改成app,然后再修改入口文件配置,如下图修改即可:

- 2、创建完整的mvc,就是在app目录下创建一个index前端模块的文件夹,然后在其下面创建model模型文件夹、view视图文件夹、controller控制器文件夹。注意:文件名都是小写。

- 3、在controller下创建Index.php控制器 注意:文件名开头大写。

- 4、访问前台首页

- 5、根据上面的步骤,我们复制操作创建一个后台的mvc模块

- 6、访问后台首页

##### 8.4 总结上面文件我们要知道的事情:

- 控制器下的文件名和我们的类名一致,而且开头是要大写,符合面向对象里我们类的命名规范,开头要大写

- 命名空间的路径是从web根目录开始,也就是应用开始的文件名称一直到该文件所在的文件夹app\index\index\index

- 此控制器的写法完全跟面向对象学习的类的写法完全一致

## 9.课堂总结

通过此节课的学习,我们应该掌握以下知识:

```

1、学会ThinkPHP框架的安装

2、域名的配置

3、配置URL重写

4、创建mvc

```

## 10. 课后练习

```

1、安装ThinkPHP框架

2、域名的配置

3、配置URL重写

4、创建MVC

```

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180605G18QXL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券