编辑:我在这里尝试实现的目标可以通过Yeoman项目完成。
所以我在私人服务器上设置git + composer + satisf,一切正常,我真的很热心。要全部爱他们。
我使用git进行项目,对于私有包,所以现在基本的工作流程如下所示:
git clone git@myserver:the-project-name
composer install
这将克隆项目仓库,并安装所需的依赖项。奇妙。
但我也希望能够使用一些'skeleton-repos'并将它们的内容复制到我的项目中,保留依赖信息。
举个例子:
这很好,但是它有一个问题:我有不同的依赖关系 - 不同的composer.json文件。 - 对于fb-bootstrap和api-bootstrap repos,所以我需要找到一种方法来安装所有这些。
请注意,我不使用composer,因为除了自动加载的php类之外,我无法将任何内容放入供应商/文件夹中,因为访问仅限于该文件夹。
取消该限制也无法解决问题,因为如果我稍后添加一个依赖项,并且我调用composer update
,我可能会丢失我在bootstrap文件夹中所做的更改。
由于上述原因,子模块和上面唯一的复制文件并没有完全削减它。
要点:
我需要一个解决方案,我可以在其中包含尽可能多的自举存储库,在完成之后,我必须能够安装所有依赖项。
像这样:
有办法吗?
另外:如果您认为我以完全错误的方式处理此问题,请随时告诉我。无论如何,我正在适应新技术,我并不害怕改变。 :)
任何评论都表示赞赏。
答案 0 :(得分:2)
在此期间,我或多或少地解决了这个问题。
首先,我放弃了完全自动化一切的想法。
组合不同的bootstrapping repos有太多问题;什么都可能发生,真的。
我想要自动化的一件事是合并bootstrap repos的不同依赖项。
所以在theese改变之后,我想出了一个非常简单的脚本,其用法如下: (请注意,gitcopy是我在linux环境中使用的脚本,它只复制存储库的内容。)
gitcopy git@server:bootstrap // Grabs the bootstrap.php file from a private repo.
php bootstrap.php fb-bootstrap api-bootstrap
第二个命令将创建一个新文件夹:'bootstrap',并将repos克隆到其中。 然后删除.git文件夹,因为我不需要版本控制。 它还引导基础composer.json,并合并其中的bootstaps中的所有其他composer.json文件。 bootstrap composer.json文件在此过程中被删除,因此我可以将引导程序内容复制到项目的根文件夹中,而不会提示覆盖其他composer.json文件。
所以基本上,它只是一个很好的小工具来抓住我需要的一切,之后我可以自己处理可能的问题。
有了这个,我可以使用Yeoman生成器,并且仍然使用我自己的bootstrap文件,而不用担心冲突。
我唯一无法研究的是如何使这个脚本成为可执行文件,因此它可以像composer一样工作。
而是抓住bootstrap.php的bootstrap repo,我可以说:bootstrap api webapp etc
。
但那是另一天。 :)