关于Thinkphp不做多说,一个常用的PHP框架,需要注意的是,ThinkPHP5做了比较大的改变,不向下兼容,小伙伴如果要升级,需要重构代码程序。
一、下载安装
ThinkPHP5下载安装方式有很多种,如git、composer,官方文档讲的都很详细,这里不再赘述,参考文档:https://www.kancloud.cn/manual/thinkphp5/118006
最简单的方式,官网下载地址直接下载:http://www.thinkphp.cn/down.html
二、框架目录介绍
thinkphp 是框架文件
base.php 是定义一些常量
composer.json是定义一些composer配置文件
console.php是控制台的入口文件
convention.php框架默认的配置文件
helper.php 是助手函数
library
think thinkphp的核心文件
traits 为类库的扩展文件
runtime 是网站运行时的缓存文件,包括日志缓存和编译文件等等
extend 我们下载第三方库使用的 我们不是通过composer下载的,我们可以将类库下载到这个目录,之后我们修改一下他的命名空间,就可以直接在我们应用中使用了
vendor 是composer安装过程生成的目录 通过composer安装的所有类库 都会安装到这个文件中
application
command.php 当我们用命令行运行该项目的php文件时,会读取这个文件的配置
common.php 项目的公共文件,所有模块都能调用,主要用于写一些通用函数以便在所有模块中都能调用
config.php 配置文件,index、admin等所有模块都会用到这个配置文件
database.php 数据库配置文件
route.php 是路由文件,美化url的配置
tags.php 应用行为扩展文件,thinkphp5提供了很多钩子,我们可以在某一个钩子上,注册某些函数,或者注册某个行为,我们可以对框架进行修改而不影响框架本身代码
index index模块,主要处理展示给前台用户
model(模型层)
view(视图层)
controller(控制层)
admin admin模块,主要处理后台逻辑
public 网站根目录,所有的这些文件都可以访问的
static文件夹主要来存放网站的静态文件,比如说css,js,静态图片等等
index.php是整个网站的入口文件,所有的请求都会经过index.php,之后再继续执行
router.php他是框架快速启动设置的配置文件,比如说你本地没有安装apache,只安装了php,那么我们可以通过php内置的web server来启动,通过这个文件就可以启动这个框架
robots.txt 是搜索引擎爬虫文件,主要是给搜索引擎看的,可以在里面定义一些链接(url),规定一些链接是允许搜索引擎爬取,而另外一些不允许搜索引擎爬取,比如网站后台管理的一些链接,我们是不希望被搜索引擎爬取的
.htaccess Apache/IIS重写规则的配置文件
三、开发规范
【目录和文件开发规范】
1.目录使用小写+下划线的方式命名
2.类库函数文件名均以.php结尾
3.类的文件名均以命名空间定义,且命名空间和类库文件所在路径一致
4.类文件采用驼峰,首字母大写,其余文件为小写+下划线命名
5.类名和类文件名保持一致,采用驼峰命名,首字母大写
【TP5常量和配置】
1、常量全部大写以下划线分隔(以大写字母和下划线命名),尽量不要以下划线开头
2、配置参数以小写字母和下划线命名
【TP5函数、类属性命名】
1、类采用驼峰命名,首字母大写不需要添加后缀
2、函数使用驼峰命名,首字母小写 如(getUserInfo)
3、属性名采用驼峰,首字母小写 如(tableName)
4、以双下划綫__开头的函数或方法为魔术方法
【其他命名】
1、表和字段采用小写+下划线的命名方式,不能以下划线开头
2、应用类库的命名空间统一为app(可以配置)
四、常见问题
(1)使用命令启动内置的web server
1 php -S localhost:8888 router.php
(2)修改顶级目录文件夹名称:
命名空间中namespace的顶级空间app,默认指的就是application,可对其进行修改,为了让命名空间跟文件夹保持一致可将application改为app,同时需要修改入口文件的配置。如:tp/public/index.php(入口文件定义应用顶级目录,tp为项目文件夹名称)
1 define('APP_PATH' , __DIR__.'/../application/'); //(这里的application就是应用顶级目录,命名空间的APP指向这里)
(3)application 里面支持多个模块,默认只有index模块 ,里面分别创建view、controller、model。后台可再创建admin模块,即创建admin文件夹,里面分别创建view、controller、model。需要自己根据业务逻辑进行创建相应模块,不一定必须是index/admin。