【问题标题】:ZF2 Modules Development - Host using GIT and ComposerZF2 模块开发 - 使用 GIT 和 Composer 的主机
【发布时间】:2015-06-19 03:08:43
【问题描述】:

我正在为 ZF2 开发模块,各个模块都托管在自己的存储库空间中,这是我的结构

module
|__ User
    |___ config
    |___ src
    |___ Module.php
    |___ composer.json
    |___ .git
__ Theme
    |___ config
    |___ src
    |___ Module.php
    |___ composer.json
    |___ .git

User 模块托管在bitbucket.org/example/userTheme 托管在bitbucket.org/example/theme 等等。

用户模块与DoctrineORMModule有依赖关系,当我使用composer.json包含依赖关系时,它会在模块内创建供应商目录并安装文件,这是在用户模块的composer.json中添加依赖关系后的目录结构.

module
|__ User
    |___ config
    |___ src
    |___ vendor
    |___ Module.php
    |___ composer.json
    |___ .git
__ Theme
    |___ config
    |___ src
    |___ Module.php
    |___ composer.json
    |___ .git

如果您注意到它在用户模块中添加了供应商目录,那么使用这种方法进行开发是否正常?我期望将依赖模块安装/复制到根供应商目录而不是模块目录中,这种方法对我来说的问题是我不希望供应商在模块目录中,这样如果我有共享依赖项,它将重复在多个目录中?在 ZF2 中开发多个模块的最佳方式是什么?

谢谢。

【问题讨论】:

  • 这不应该发生。运行 composer install 命令时,您在哪个文件夹中?
  • 在模块/用户目录中。
  • 那就是问题所在。仅从项目根目录运行 composer 命令。
  • 我得到了每个模块的 composer.json,如果我从 root 运行它,composer 如何安装在模块 composer.json 中指定的依赖项?
  • 你也应该使用 composer 安装你的模块,然后 composer 会将它们和它们的依赖项放在 vendor 中。

标签: git zend-framework2 composer-php bitbucket


【解决方案1】:

我认为这个问题已经在这里得到了很多答案:How to write a vendor programme/module for ZFT

基本上你不会把 composer 包放到 modules 文件夹中,而是让 Composer 把它们放到 vendor 目录中。这将不需要安装模块依赖项,因为所有依赖项都将由 Composer 为主应用程序一次性解决。

编辑包的主要问题是什么效果好 - 你可能会很高兴使用composer update --prefer-source,它将 git 存储库克隆到文件夹中,你可以在那里使用它们。或者,如果您想在其他任何地方拥有这些存储库,您可以应用您想要的任何方法,例如使用符号链接等。 Composer 不会介意 - 如果它在路径中找到存储库,它将使用它。

但请注意,如果您在未提交所有内容的情况下不小心运行更新,可能会很危险。

此外,如果您忘记提交一个重要文件,这可能是个问题 - 它可以在您的机器上运行,因为该文件存在,但它不在存储库中,所以它会在其他任何地方丢失。

【讨论】:

  • 谢谢@Sven,我不介意从供应商目录开发模块,只要它有效,我测试了你的方法并且它有效。
猜你喜欢
  • 2013-09-29
  • 2014-05-12
  • 2013-01-13
  • 1970-01-01
  • 2014-03-17
  • 2012-12-30
  • 1970-01-01
  • 2021-07-05
  • 2020-06-20
相关资源
最近更新 更多