嵌套目录的编写器供应商名称格式



编写器包的标准包名格式是vendor/pkName。我的目录结构如下:

 - myVendorName
    - extensions
      - yii2
        -Ext1
        -Ext2 and so on
    - bundles
      - bundle1
      - bundle2
      - bundle3 and so on
    - toolkit
     - forlder1
     - folder2 and so on

这是我在硬盘上给出的组织,但真正的项目是这样的:

  - myVendorName/extensions/yii2/ext1
  - myVendorName/extensions/yii2/ext2
  - myVendorName/bundles/bundle1
  - myVendorName/bundles/bundle2
  - myVendorName/bundles/bundle3
  - myVendorName/toolkit

我的问题:

  1. 可以将所有的git存储在一个仓库中,并且只需要与composer一起使用所需的子包(例如:只需要myVendorName/toolkitmyVendorName/bundles/bundle3)

  2. 可以使用composer来维护扩展的名称格式(因此在composer.json require部分,require为myVendorName/bundles/bundle3而不是myVendorName/bundle3)

有办法实现这两点吗?

可以通过git子树拆分实现(1)。使用这种方法,您可以将主存储库的不同目录拆分为一个新的存储库,并将其推送到github。这样,所有的包仍然有自己的存储库,但你只需要维护一个存储库(很多大项目都使用这个,像Symfony, Laravel等)。

不支持

(2)。你可以用my_vendor/third-bundle代替my_vendor/bundles/third。无论如何,目录并不重要,因为Composer会自动加载包中的所有类(如果它们有正确的自动加载配置)。

可以将所有内容存储在一个git存储库中,并要求使用只编写需要的子包(例如:require only)"myVendorName/toolkit"one_answers"myVendorName/bundles/bundle3")

是的。如果你在不同的项目中有相同的组件,而这些组件可能需要特定的依赖集,那么考虑将它们变成一个可重用的包,而不是一个带有composer.json的空包。还要注意,require-dev只在根包中解析。

可以使用composer来维护扩展的名称格式在作曲家。Json的require section, require for用"myVendorName/bundles/bundle3"代替"myVendorName/bundle3"

是的。在repositories中,提供vcspackage存储库,并使其解析myVendorName/bundles/bundle3vcs中的url可能引用本地git的repo。没有简单的方法将"myVendorName/bundle3"别名为"myVendorName/bundles/bundle3",这使得这个想法不切实际。

相关内容

  • 没有找到相关文章

最新更新