在 TYPO3 Composer 项目中开发扩展

Developing extensions in a TYPO3 Composer project

总结:如何设置(现有的)TYPO3 Composer 项目来开发自定义 TYPO3 扩展(在该项目中使用)?如何处理不特定于单个项目的扩展,这些扩展可能存在于多个项目中。


我的站点有一个 Composer TYPO3 项目。相关文件(例如 composer.jsoncomposer.lockLocalConfiguration.php 包含在 Git 存储库中)

问题是如何开发自己的自定义(目前非public)扩展并设置开发实例。

看来,针对项目特定的扩展选择的解决方案是将它们包含在项目仓库中,例如在文件夹 /extensions 中并使用存储库 type=path 添加它们,如下所示:

composer.json:

"repositories": [
    {
        "type": "path",
        "url": "extensions/*"
    },
...
"require": {
    "myvendor/myextension": "@dev",
    ...
}
 

对于仅在该项目中使用的扩展,这对我来说很有意义。

我如何处理不特定于此项目的扩展?它们也用于其他项目。例如,我的项目中可能存在可重现的错误 - 因此我想在该项目的扩展上进行调试和开发。为其他作者的 public 扩展创建 PR 也是如此。

我目前拥有的自定义扩展:它们有自己独立的 git 存储库(私人 Gitlab),被标记为发布并且需要版本标签。

composer.json(不完整)

{
  "repositories": [
    {
      "type": "gitlab",
      "url": "git@gitlab.mysite.org:typo3-extensions/my_extension.git"
    }
  ],
  "require": {
    "myvendor/my-extension": "^1.3.1"
  }
}   

此设置不适合使用相同的 git 存储库来设置开发站点并在此基础上开发扩展(因为自定义扩展是由 Composer 从 Gitlab 获取的,没有 .git 个文件)。

对我来说,最直接的解决方案似乎是在扩展存储库中创建一个新分支,从当前用于特定问题的 commit/tag/version 开始。

将项目中需要的版本设置到新的分支上,开始攻克问题,直到找到解决方案。

然后你可以考虑将更改合并回 master 或者为这个项目保留一个单独的分支来接收来自 master 的更新。