将要在其他项目中使用的 CMS 中的 composer 放在哪里?

Where to put composer in a CMS that is going to be used in other projects?

目前我正在开发一个小型的无头 CMS。如果有人想使用它,他应该复制我的 CMS 的根文件夹并将其放入他的 public_html 文件夹中。因此,对于对 CMS 的任何请求,URL 看起来像这样:

示例。com/my-cms-name/subfolder/...

为了更好地组织第三方库,我决定使用 composer。但现在我的 CMS 文件夹中有 composer.json 文件和供应商文件,它们将位于 public_html 文件夹中。因此,composer 的所有内容都将对所有人可用,这显然不是一个好的做法。

我该如何克服这个问题?我应该在不同的文件夹中分别做所有作曲家的事情吗?但是我的 CMS 用户必须将多个文件夹包含到多个目录中,这使得一切变得更加复杂...

我同意半疯。无论如何,人们可能不得不通过 FTP 上传您的 CMS 文件并设置根路径。因此,您不妨将您的脚本分为私有脚本和 public 个脚本。所以像这样的目录结构可能是个好主意。

-config
-public_html (root path that people must point their domain to)
 -css
 -javascript
 -images
 -index.php
 -.htaccess (optional)
-src (where your namespaced script should reside )
--MyApp
-vendor
-composer.json
-composer.lock

更新 composer.json 并添加您自己的 src,运行 更新命令。然后将供应商 autoload.php 包含在您的 index.php 中,然后按照 router/controller 方式。