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

tp5├─application     应用目录
├─extend          扩展类库目录(可定义)
├─public          网站对外访问目录
├─runtime         运行时目录(可定义)
├─vendor          第三方类库目录(Composer)
├─thinkphp        框架核心目录
├─build.php       自动生成定义文件(参考)
├─composer.json   Composer定义文件
├─LICENSE.txt     授权说明文件
├─README.md       README 文件
├─think           命令行工具入口

一般的信息管理项目中都分为前台和后台所以在application中一般新建admin和index两个文件夹,index文件夹一般在配置好环境后第一次运行index.php入口文件的时候会自动生成,而admin文件夹我们可以使用命令行的方式来生成。

切换到命令行模式下,进入到应用根目录并执行如下指令:

php think build --moudle admin

就会生成一个admin模块,包括如下目录结构:

├─admin   │  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─view            视图目录
│  ├─config.php      模块配置文件
│  └─common.php      模块公共文件

同时也会生成一个默认的Index控制器文件。

这样,整个项目的目录结构就变成了:

├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  └─view            视图目录
│  ├─admin              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  └─view            视图目录
│  │
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件

可以看出index和admin模块中都包含model、controller、和view三个文件夹,这三个文件夹分别存放MVC模式中的模型、控制器和视图文件。

由于Model层存放的是模型,也就是与数据库中表内容相对应的类文件,而这部分数据库的操作在index和admin模块中都是需要的。所以我们将model文件夹放在Index和admin模块的外部,合二为一,这样index和admin就可以很方便的使用它了,从逻辑上也变得更清晰,现在,整个目录结构变这样:

├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录          
│  │  └─view            视图目录
│  ├─admin              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录           
│  │  └─view            视图目录
│  │
│  ├─model              模型层            
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件

为了实现数据与操作的分离,model层进一步细化为model层、logic层、service层,这些默认是放在某个模块下的,如在index模块中logic层默认的目录是index/logic,这样ThinkPHP才能找到它,如果没找到它的话,ThinkPHP会到模块外部的Common文件夹中找它,service层也是这样的,如果我们想index和admin两个模块都使用它们,那么我们需要把它们放在application\common文件夹中,这就需要在application中新建一个common文件夹。现在目录结构变成这样:

├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录          
│  │  └─view            视图目录
│  ├─admin              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录           
│  │  └─view            视图目录
│  │
│  ├─model              模型目录
│  ├─common             公共目录
│  │  ├─logic       逻辑层
│  │  ├─service       服务层           
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件 由于在ThinkPHP5中将模型验证也与模型分离了出来,放在每个模块下专门的validate文件夹中,而验证无论是前台或后台向数据库中写数据都是需要的,ThinkPHP查找它的方法与前述查找logic层的方法是一样的,
先在本模块的validate文件夹中找它,如果找不到就调到本模块外层的common文件夹中寻找。同样地,我们将它放在模块外层的common文件家中。现在,目录变成如下的样子:
├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录          
│  │  └─view            视图目录
│  ├─admin              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录           
│  │  └─view            视图目录
│  │
│  ├─model              模型目录
│  ├─common             公共目录
│  │  ├─logic       逻辑层
│  │  ├─service       服务层 
│  │  ├─validate        模型验证          
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件 参考文献:
[1]ThinkPHP5.0快速入门
[2]ThinkPHP5.0完全开发手册
[3]ThinkPHP5.0入门实例教程

ThinkPHP5项目目录的更多相关文章

  1. ThinkPHP5项目目录规划实践

    ThinkPHP5安装后(或者下载后的压缩文件解压后)可以看到下面的目录结构: tp5├─application     应用目录 ├─extend          扩展类库目录(可定义) ├─pu ...

  2. thinkphp5项目--个人博客(三)

    thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  3. thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片)

    thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise ...

  4. 使用express-generator初始化你的项目目录

    express 4.x以后将express命令独立到 express-generator包中,所以想使用express初始化项目目录,可以npm install express-genrator   ...

  5. 为什么eclipse中代码提示错误,但是项目目录却不提示错误

    public class Aasf { public static void main(String[] args) { System.out.println("");aihfsa ...

  6. Laravel项目目录结构说明

    Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...

  7. MVVM 模式下iOS项目目录结构详细说明

    ➠更多技术干货请戳:听云博客 我们在做项目的时候,会经常用到各种设计模式,最常见的要数 MVC (模型,视图,控制器)了.但是,今天我们要说的是另一种设计模式——MVVM. 所以 MVVM 到底是什么 ...

  8. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  9. 1-5Tomcat 目录结构 和 web项目目录结构

    对应我的安装路径: web项目目录结构

随机推荐

  1. ECMAScript6——异步操作之Promise

    Promise对象的参数为一个回调函数,这个回调函数有两个参数,分别是resolve, reject(这俩参数的名字可任取),resolve,reject分别表示异步操作执行成功后的回调函数和异步操作 ...

  2. cookie提取dex文件

    有时候在java层能获取dex文件的cookie,但是在java不能从cookie得到dex,如果想要获取只能通过jni在C层实现,具体实现代码如下(nexus手机4.4系统) static void ...

  3. Markdown 编辑器

    桌面编辑器 MarkdownPad Pro 版注册邮箱: Soar360@live.com 授权密钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGI ...

  4. 基于Vue手写一个下拉刷新

    当然不乏有很多下拉刷新的插件可以直接使用,但是自定义程度不强,大部分都只能改改文字,很难满足设计师的创意,譬如淘宝和京东首页那种效果,就需要自己花心思倒腾了,最近刚好有这种需求,做完了稍微总结一下,具 ...

  5. 基于tensorflow 1.x 的检索机器人chatbot-retrieval

    Chatbot-retrieval说基于tensorflow的检索机器人,原版的代码路径是 https://github.com/dennybritz/chatbot-retrieval, 但是在te ...

  6. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  7. MYSQL数据库封装类

    <?phpclass DBDA{    public $host="localhost";    public $uid="root";    publi ...

  8. 1082. Read Number in Chinese (25)-字符串处理

    题意就是给出9位以内的数字,按照汉子的读法读出来. 读法请看下方的几个例子: 5 0505 0505 伍亿零伍佰零伍万零伍佰零伍 5 5050 5050 伍亿伍仟零伍拾万伍仟零伍拾  (原本我以为这个 ...

  9. 2-Eleventh Scrum Meeting20151211

    第二阶段任务分工整理会议 1.会议任务: (1)明晰第二阶段的开发内容,统计未完成的功能留需完善开发. (2)安排任务分工,每个人的工作安排. (3)PM职位担任. (4)博客内容负责. 2.会议记录 ...

  10. Beta阶段冲刺四

    Beta阶段冲刺四 Task1:团队TSP 团队任务 预估时间 实际时间 完成日期 新增其他学院的爬虫 180 130 11.30 新增其他学院的数据库字段修改 180 160 12.1 新增其他学院 ...