Php 将composer放在其他项目中使用的CMS中的何处?

Php 将composer放在其他项目中使用的CMS中的何处?,php,content-management-system,composer-php,Php,Content Management System,Composer Php,目前我正在开发一款小型无头CMS。如果有人想使用它,他应该复制我的CMS的根文件夹,并把它放到他的公共html文件夹中。因此,对于CMS的任何请求,URL如下所示: example.com/my-cms name/subfolder/ 为了更好地组织第三方库,我决定使用composer。但是现在我的CMS文件夹中有composer.json文件和vendor文件,它将位于public_html文件夹中。所以,从composer开始,所有人都可以使用,这显然不是一个好的做法 我怎样才能克服这个问题

目前我正在开发一款小型无头CMS。如果有人想使用它,他应该复制我的CMS的根文件夹,并把它放到他的公共html文件夹中。因此,对于CMS的任何请求,URL如下所示:

example.com/my-cms name/subfolder/

为了更好地组织第三方库,我决定使用composer。但是现在我的CMS文件夹中有composer.json文件和vendor文件,它将位于public_html文件夹中。所以,从composer开始,所有人都可以使用,这显然不是一个好的做法


我怎样才能克服这个问题?我应该在另一个文件夹中分别完成所有作曲家的工作吗?但是,我的CMS用户必须将多个文件夹包含到多个目录中,这使得一切变得更加复杂……

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

-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,运行Update命令。然后将供应商autoload.php包含在index.php中,然后选择路由器/控制器。

为什么不将应用程序放在公共html目录之外,然后进行某种路由设置?这是更好的做法。如果不是公共文件,则不要将其公开。就这么简单;)是的,我可能会选择这样的。但是我会把所有的东西都放在两个文件夹中(一个在public_html文件夹的外部/内部),以保持安装的方便。在内部文件夹中,只有routing index.php和js/css/Images。其余的(配置、编写器、供应商等)放在外部文件夹中。举个例子,有人做了不同的事情:,如果我理解正确,他们只是将编写器的内容全部放在public_html路径中。