php网站目录结构图,thinkPHP5.0站点目录结构-我心向阳

一、ThinkPHP5.0的目录结构

安装后(或者下载后的压缩文件解压后)可以看到下面的目录结构:

tp5

├─application 应用目录

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

├─public 网站对外访问目录

├─runtime 运行时目录(可定义)

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

├─thinkphp 框架核心目录

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

├─composer.json Composer定义文件

├─LICENSE.txt 授权说明文件

├─README.md README 文件

├─think 命令行工具入口

注意几个关键的路径及对应的常量:

目录              说明              常量

tp5              项目根目录          ROOT_PATH

tp5/application  应用目录            APP_PATH

tp5/thinkphp 框架核心目录 THINK_PATH

tp5/extend 应用扩展目录 EXTEND_PATH

tp5/vendor Composer扩展目录 VENDOR_PATH

1.核心框架目录(tp5/thinkphp)的结构如下:

├─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 框架引导文件

2.网站对外访问目录

网站对外访问目录,一般存放网站的资源文件。网站的资源文件访问不会影响正常的操作访问,只有当访问的资源文件不存在的时候才会解析到入口文件,一般就会提示模块不存在的错误。

记住,千万不要在public目录之外的任何位置放置资源文件,包括application目录。

下面是目录内文件的建议规范:

public

├─index.php 应用入口文件

├─static 静态资源目录

│ ├─css 样式目录

│ ├─js 脚本目录

│ └─img 图像目录

二、入口文件

基于ThinkPHP构建的网站,其访问都是从入口文件处开始解析的。ThinkPHP5.0版本的默认自带的入口文件位于public/index.php,入口文件内容如下:

// 定义应用目录

define('APP_PATH', __DIR__ . '/../application/');

// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

这段代码其实就是定义应用目录APP_PATH和加载ThinkPHP框架的入口文件,这也是所有基于ThinkPHP开发应用的第一步。

注意:ThinkPHP采用单一入口模式访问应用,对应用的所有请求都首先定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,标准的URL访问格式如下:

http://public对外访问目录/index.php/模块/控制器/操作

tp5建议将public目录应当作为应用对外访问目录,也就是将网站根目录配置到/public。如果网站的入口文件就是资源文件的起始位置,如果你的入口文件不是在public目录下面的话,还需要自行调整。如果不清楚当前的入口文件位置,可以使用phpinfo()在页面输出中查看DOCUMENT_ROOT的值。

本笔记中,域名统一使用虚拟主机域名localhost,虚拟主机根目录统一定位到public目录,也就是tp5/public,则上述URL可规范为:

http://localhost/index.php/模块/控制器/操作

三、关于模块

模块在ThinkPHP中的概念其实就是应用目录(applicicaion)下面的子目录(如tp5安装默认的index模块是:tp5/application/index),官方的规范是目录名小写,因此模块全部采用小写命名,无论URL是否开启大小写转换,模块名都会强制小写。

控制器则是模块的controller子目录下面的php文件(如index模块下的index控制器是:tp5/application/index/controller/index.php)。

操作指的是控制器文件内部的函数或者过程(如表示index操作的代码块是:public function index())。

下面是应用目录下的文件结构,注意index模块目录内的各个文件结构,很容易混淆。

application

├─index 模块名称,并非一定是index

│ ├─controller 控制器目录

│ │ ├─index.php 控制器,并非一定是index.php

│ ├─model 模型目录

│ │ ├─user.php 模型文件,通常对应数据库中的表

│ ├─view 视图目录

│ │ ├─index 对应控制器名称,如index控制器

│ │ │ ├─hello.html 操作视图,对应index控制器内的hello操作

... 其他模块名称

├─.htaccess

├─command.php

├─common.php

├─config.php

├─database.php

├─route.php

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页