使用 composer、gulp 和 Travis 的 PHP 网站的目录结构
我试图找出php网站的目录结构。
该网站将使用:
- 一个非常基本的php MVC框架(即MinimalMVC,但我正在寻找一个通用的解决方案,所以框架可能会被忽略)
- 用于管理 PHP 依赖项的编辑器
- 用于造型的 SCSS
- gulp来编译SCSS(用于开发构建),还可以缩小和连接JS和CSS输出以及缩小图像等(仅用于部署构建)
- Travis CI for CI stuff
因此,经过大量的思考和规划,并研究了我提出的不同类型目录结构的问题,我仍然找不到符合我标准的东西:
-
gulp deploy
应该能够生成一个部署文件夹,当将其放入Apache服务器上的目录中时,应该只是工作TM/var/www/html/
注意:MinimalMVC(以及CodeIgniter和其他类似的框架)要求他们的文件在根目录中,并且和文件夹在同一目录中
index.php
app
sys
由于PHP从未真正由构建过程处理过,因此如果可以避免不必要的将文件复制到类似的东西中,那就太好了。基本上,PHP部分不会保持吞噬,我宁愿它不受吞噬的影响。
src/**/*.php
build/**/*.php
现在,我的想法有点混乱,因为我一直在考虑这个问题,所以原谅我这个问题也有点混乱,但基本问题是,目录结构应该是什么样子?
一个想法:
.
|-- composer.json
|-- gulpfile.js
|-- package.json
|-- src
| |-- app
| | |-- controllers
| | |-- models
| | `-- <other_framework_stuff>
| |-- assets
| | |-- css
| | |-- img
| | |-- js
| | `-- raw
| | `-- scss
| |-- index.php
| `-- sys
| `-- <framework_stuff>
|-- test
`-- vendor
`-- <composer_stuff>
在此结构中,开发人员仅在目录中工作。SCSS 从 编译为 。这样,PHP 仍会从生成过程中移除。当尝试生成目录时,src文件夹被复制过来,(所以没有)目录不存在,生产/部署就绪的CSS,JS和图像可以在中找到。/src
/src/assets/raw/scss/
src/assets/css
deploy
/src/assets/raw/
/build/assets/raw
/build/assets/
这个解决方案的第一个问题是奇怪的目录,恕我直言,这似乎很丑陋。第二个问题是目录。这意味着php引用了来自外部src的东西。因此,如果要照顾它,它将包括.然后,这意味着相同的代码被复制到 .然后不会通过将其放入运行,除非看起来很奇怪。src/assets/raw
/vendor
/src/index.php
../vendor/autoload.php
/build/index.php
/build/
/var/www/html
vendor
/var/www
我还想到了很多其他的东西,但所有这些东西都以某种方式看起来很丑陋。为了避免这个问题太长,我就到此为止。
请帮忙。我应该在?(我知道,嗯。我应该使用哪种目录结构?vendor
/src/
vendor-dir
composer.json