应该如何为 laravel 4 composer 包设置 git 子模块?

Posted

技术标签:

【中文标题】应该如何为 laravel 4 composer 包设置 git 子模块?【英文标题】:How should git submodules be set up for laravel 4 composer packages? 【发布时间】:2013-04-22 12:40:26 【问题描述】:

我正在使用 laravel 4 构建一个应用程序,并希望部署到云服务器以进行进一步测试。我通常做的一般过程是本地>推送到github>克隆到服务器。

问题是我添加的几乎所有 laravel/composer 包都被忽略了,因为它们有自己的 git 存储库——我事先并没有真正考虑过这一点。

我了解子模块的概念,但我不太了解如何设置它们。我是否必须在父树中为我安装到应用程序的每个包添加一个子模块?有没有更自动化的方式来处理这个问题?

或者我完全关闭了,是否应该使用 composer 在服务器上更新这些?

【问题讨论】:

【参考方案1】:

我认为在生产服务器上运行 composer 是一个严重的错误。见Getting started with chef, and running composer install on deploy

【讨论】:

【参考方案2】:

使用 Composer 时,您根本不必关心 Git 子模块。

在您的本地计算机上,您只需在 composer.json 中指定您的依赖项,然后运行 ​​composer install。现在将您的composer.json composer.lock 添加到您的项目存储库中,但排除.gitignore 中的vendor 目录。

现在要部署您的项目,只需在生产服务器上克隆或拉取您的项目存储库,然后再次运行 composer install 以安装所有项目依赖项。

当您对依赖项进行更改时,您会再次执行完全相同的过程,包括在本地和生产机器上使用 composer install

【讨论】:

【参考方案3】:

似乎答案是作曲家: http://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md

将 /vendor 添加到 .gitignore 文件,并在第一次克隆后运行 composer install。

【讨论】:

以上是关于应该如何为 laravel 4 composer 包设置 git 子模块?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何为需要引用数据透视表的表配置 Laravel / OctoberCMS 模型?

Laravel 4:如何为嵌套资源编写正确的嵌套控制器?

如何为我的项目创建 PSR-4 自动加载器?

Laravel 4,如何为具有关系的表创建种子数据?

LARAVEL如何为房间设置颜色

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息