gpt4 book ai didi

composer-php - 如何将 Git 子模块与 Composer 加载的库一起使用?

转载 作者:行者123 更新时间:2023-12-02 03:11:21 24 4
gpt4 key购买 nike

我有一个 Zend Framework 2 应用程序。它包含一些包含业务逻辑的库代码和一些其他实用程序,这些实用程序将在稍后创建的其他应用程序中通用。

我的目的是使用 Composer 跨项目共享它。问题是,我如何正确地做到这一点并简化开发?我几乎肯定需要从另一个项目中对库进行更改和添加。

我尝试设置 vendor/stuff作为包含所需包的 git 子模块,并在主 composer.json 中引用它像这样 (ref) :

"repositories": [
{
"type": "git",
"url": "vendor/stuff"
}
],
"require": {
"stuff/library": "master"
},

Composer 无法以这种方式加载它。它提示找不到包,大概是因为它忽略了 URL 既是本地的又是相对的事实。从技术上讲,它不需要; vendor/stuff 文件夹是通过 git 子模块命令单独初始化的。

最佳答案

期望的行为:

  • 您有 2 个 Zend 项目:项目_A 项目_B
  • 两个项目都使用同一个名为 的公共(public)库图书馆_C
  • 图书馆_C 需要来自 项目_A 项目_B 通过 Composer
  • 图书馆_C 应该可以在 中编辑供应商 中的文件夹项目_A 项目_B 你应该能够推送这些更改
  • 您的库的 git URL 是 https://github.com/stuff/library_C.git

  • 怎么做:
  • 把你的图书馆放在 Composer .json 项目_A 项目_B
  • "require": {
    "stuff/library_C": "master"
    },
    2.运行 Composer 安装 .现在您的库位于文件夹 中供应商/资料/库_C
    3.现在当你想编辑 里面的东西时图书馆_C 项目_A 项目_B , 删除文件夹 供应商/资料/库_C 并运行此命令
    git submodule add -f https://github.com/stuff/library_C.git vendor/stuff/library_C
    此命令将重新创建此文件夹 供应商/资料/库_C , 但这个文件夹现在是另一个 git repo (子模块)
    4.进入文件夹 供应商/资料/库_C 更改任何内容并提交并推送,仅此而已!!!
    之后当你运行 composer update stuff/library_C 在其他项目中,代码将被更新。
    注意:运行后 git 子模块添加
    您将在分支主机上,因此您必须 checkout 到正确的分支或标签并在那里进行更改。

    关于composer-php - 如何将 Git 子模块与 Composer 加载的库一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18100420/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com