是否可以将Composer的安装/更新/要求/删除过程拆分为使用Web界面逐步执行?可能是这样的:
- 用户输入所需的包名称。客户端(浏览器)将其发送到Web服务器。
- Controller通过AJAX获取并返回一些可用的repos
- 客户端发送每个回购编号,直到控制器返回成功为止。
- 客户端发送请求以从目标仓库运行安装。
- Controller安装包没有依赖项,保存并将依赖项列表返回给客户端。
- 转到第1阶段,客户端从列表中发送包名称,并在每个包中重复此操作,直到列表结束。
- 完成所有依赖项后,客户端会发送命令以创建新的自动加载器。
醇>
(第1-3阶段绝对可以实现,我找到了Composer\Repository\RepositoryManager
使用的一些例子)
因此,我们节省了大量内存和CPU时间,使流程可以通过Web界面执行。
这是原始方案,它将被执行很长时间并且需要进行优化,但是类似的东西足以安装轻量级CMS插件,例如。