【问题标题】:How to update projects with composer support?如何使用作曲家支持更新项目?
【发布时间】:2014-10-02 05:48:46
【问题描述】:

我希望这个问题能以某种方式解释我想要做什么。如果没有,我会尝试给出更详细的解释:

我目前正在将一个大型项目从 SVN 迁移到 Git。在这个项目中,所有依赖项都存储在不同的文件夹中并提交到 SVN 存储库。我已经了解到you should not put the vendors folder in your repo。但是我将如何更新依赖项?在我阅读的另一个资源中,您应该只对composer.lock 文件进行版本控制。 composer.json 文件怎么样?

这是我想到的策略:

  • 排除 .gitignore 文件中的供应商文件夹
  • composer.jsoncomposer.lock 文件添加到repo 中
  • 添加 composer_update.php 文件以在接收后挂钩中使用它

当我们必须更新一些依赖时,我们必须做以下事情:

  • 更新composer.json文件
  • 在本地运行 composer update 以更新 composer.lock 文件(或本地开发实例中的 composer_update.php 脚本)
  • 将更改推送到 Stash/Bitbuckt/Github,然后通过 post-receive 挂钩执行 composer_update.php 脚本

你会推荐这样的东西,还是有更好的方法?对不起,我对作曲家真的很陌生。

【问题讨论】:

  • composer_update.php 脚本应该做什么?在 Github 上???
  • composer_update.php 文件将由 Stash/Bitbucket/Github 触发的接收后挂钩使用,abs 将运行类似shell_exec( 'composer update' ); 这样您就不需要通过 SSH 连接到服务器和手动运行命令。有一个 git_pull.phpscript 为 Git 做类似的事情。
  • 我想你在 Github 上没有 shell。而且,命令是错误的。你不想更新,你想安装。而且您不想安装在托管存储库的服务器上(为什么要安装),您想在部署期间使用部署脚本进行安装。然而,Git 不是部署工具。
  • 我认为您在这种情况下误解了“项目”。它不是提供作曲家支持的项目,而是使用作曲家加载依赖项的项目。它只是这个项目的代码放在 Stash/Bitbucket/Github 主机上。项目本身部署到生产网络服务器。我只想知道,我的开发人员如何使用 Composer 更新这个正在运行的生产网站中的组件。
  • 我想我理解正确。 :) 如果您进行部署,那么这是执行以下操作的最佳时机: 1. 从 Git 存储库中获取代码。 2. 安装依赖项(请注意,您可能有一天会拥有除 PHP/Composer 之外的其他依赖项 - 只需考虑一些 Javascript 依赖项) 3. 将结果放到生产服务器上。您不会更新 Composer 依赖项,因为这可能会安装与您测试和 QA 的版本不同的版本。而且您不想使用 post-receive 挂钩进行更新,因为这只适用于存储库所在的位置 - 而且不应该是 prod 服务器。

标签: deployment composer-php githooks


【解决方案1】:

您应该同时提交composer.jsoncomposer.lock,因为这两个文件对于 Composer 操作是必不可少的。我敢打赌你误读了什么不应该提交 - 从使用 Composer 运行创建的所有内容中,你只提交锁定文件,没有其他内容。

【讨论】:

  • 好的,这两个文件,就像我想的那样。以及更新过程如何(使用 post-receive 挂钩)?
  • 你不会在无人看管的情况下更新东西,你只会安装。请参阅我对您的问题的评论。
【解决方案2】:
  1. 同时提交composer.jsoncomposer.lock 文件。
  2. 要在开发过程中更新依赖关系,只需在终端中运行 composer update
  3. 在终端中更新对生产运行composer install 的依赖关系。您可以将此命令添加到 post-receive 挂钩中。

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 2020-01-16
    • 1970-01-01
    • 2019-12-02
    • 2015-12-01
    • 2015-09-11
    • 2016-02-13
    • 2016-01-27
    • 2021-07-12
    相关资源
    最近更新 更多