一、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

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

  1. 修改Apache的默认站点目录的方法,需要的朋友可以参考下

    由于博客系统崩了,所以要考虑重新建立博客系统,首先遇到的一个问题就是原来的博客系统是安装一个独立的磁盘上面的(http://m.0834jl.com)不是安装在系统盘上面的,然而一般在linux下面安 ...

  2. ThinkPHP5.0商城项目目录搭建(菜鸟)

    项目目录 ThinkPHP5.0类的命名:直接命名(首字母大写)eg:UserController.class.php => User.php 下载ThinkPHP5.0 解压作为根目录: 如图 ...

  3. php网站目录结构图,thinkphp项目目录结构详解

    在上一节无忧主机(www.51php.com)小编和大家讲了thinphp 3.0的主入口文件,不知大家是否还记得我们第一次执行主入口文件后,我们的项目目录下自动生成了很多文件夹,这个就是我们项目的结 ...

  4. 监控web站点目录下所有文件是否被恶意篡改

    监控web站点目录下所有文件是否被恶意篡改,(文件内容被改了)如果有的就打印改动的文件名 定时任务:每三分钟执行一次监测一次 文件被篡改的特征: 大小可能会变化(为什么说可能呢,如果把里面的值1改为2 ...

  5. svn 自动同步到web站点目录post-commit.bat

    为什么80%的码农都做不了架构师?>>>    需求分析: 在服务器上搭建了visualSVN server ,然后为了统一测试环境,又在服务器上搭建了web server.现在的需 ...

  6. ZBLOG简单的导航网站主题 支持内页详情目录模板

    介绍: 之前一段时间老蒋和从业网zhuan类网站的网友闲聊到看到有几个做网zhuan导航类型的网站盈利情况还是不错的,当然我不熟悉这个领域也没有打算做接触这个行业. 不过我看到有不少网友在寻找类似的目 ...

  7. tomcat相关配置技巧梳理 (修改站点目录、多项目部署、限制ip访问、大文件上传超时等)...

    tomcat常用架构: 1)nginx+tomcat:即前端放一台nginx,然后通过nginx反向代理到tomcat端口(可参考:分享一例测试环境下nginx+tomcat的视频业务部署记录) 2) ...

  8. yii2.0域名目录绑定(二级域名)以及url美化 url伪静态 Apache ,Ngnix和 IIS

    域名绑定目录前要进行域名解析,域名解析一般在购买商的管理平台上解析,需要一定时间才能正常解析. vi /etc/httpd/conf/httpd.conf,中搜索VirtualHost example ...

  9. 利用麦咖啡(McAfee)打造超安全的Web站点目录

    这篇文章主要介绍了利用麦咖啡(McAfee)打造超安全的Web站点目录,需要的朋友可以参考下 话说某日暴某站菊花,发现Web目录权限极小, 除了基本的上传功能健全,几乎没有任何权限,修改,删除,替换等 ...

最新文章

  1. 5G技术与触觉互联网,一个全新的世界
  2. 如何利用FineReport制作动态树报表
  3. 扫地机器人湿地_什么品牌的扫地机器人性价比最高?
  4. 2020,这些前沿技术成全球关注热点
  5. python月球地球质量计算_我们如何计算一个行星的质量?
  6. Excel中的常用快捷键
  7. 10.31课程.this指向
  8. 炼油化工常用英文缩写
  9. python制作fnt字体打包工具
  10. PMP中英文术语对照
  11. 不同计算机的操作码完全相同,单片机课后习题答案
  12. 我的团长我的团第十四集
  13. SpringBoot+Vue实现前后端分离的财务管理系统
  14. 面试系列-3 限流场景实践
  15. iMac 2019一体机开箱体验,其内存是什么牌子,怎样换iMac内存?
  16. LCD高抗干扰液晶段码屏显示驱动芯片:VK2C21A/B/BA/C/D 大量应用于音箱/音响面板LCD显示驱动
  17. 600度近视眼恢复方法_高度近视600度如何恢复视力?这三大办法
  18. JetBrains各版本全家桶工具 编程开发全套永久软件!IDE也能免费用
  19. 近端梯度下降法 (proximal gradient descent)
  20. 飞机大战--java

热门文章

  1. android打开小屏登录画面,Android炫酷登录界面
  2. gcc降版本 linux_更改gcc默认版本,实现gcc版本升降级
  3. 查看gcc/g++版本以及对应默认的的C++标准
  4. 关于python -m的简单用法
  5. nmap --script常用脚本简介
  6. 【渝粤教育】国家开放大学2019年春季 1323内科护理学(本) 参考试题
  7. 消息中的wParam和lParam
  8. c语言滑稽的编程,12个滑稽的C语言面试问答——《12个有趣的C语言问答》评析(5)...
  9. matlab 伽马分布函数,伽马分布(Γ分布的分布函数)
  10. 自用笔记26——异或运算法则