ThinkPHP5项目目录规划实践
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??????模块公共文件 同时也会生成一个默认的 这样,整个项目的目录结构就变成了: ├─application???????????应用目录(可设置) │??├─index??????????????模块目录(可更改) │??│??├─config.PHP??????模块配置文件 │??│??├─common.PHP??????模块公共文件 │??│??├─controller??????控制器目录 │??│??├─model???????????模型目录 │??│??└─view????????????视图目录 │??├─admin??????????????模块目录(可更改) 可以看出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两个模块都使用它们,那么我们需要把它们放在applicationcommon文件夹中,这就需要在application中新建一个common文件夹。现在目录结构变成这样: ? ├─application???????????应用目录(可设置) │??├─index??????????????模块目录(可更改) │??│??├─config.PHP??????模块配置文件 │??│??├─common.PHP??????模块公共文件 │??│??├─controller??????控制器目录?????????? │??│??└─view????????????视图目录 │??├─admin??????????????模块目录(可更改) │??│??├─config.PHP??????模块配置文件 │??│??├─common.PHP??????模块公共文件 │??│??├─controller??????控制器目录??????????? │??│??└─view????????????视图目录 │??│ │??├─model??????????????模型目录 │??├─common?????????????公共目录 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |