我想在本地设置 TYPO3 以进行扩展开发。
我在 Linux 上工作(但我们假设答案应该对 Mac 和 Windows 有帮助,因为这是最常用的)。
我可以轻松地设置我的系统以进行 TYPO3 核心开发(无论是否有 DDEV),因为 这是有很好的文档记录的。然而,该方法克隆了 TYPO3 核心并适用于当前的开发主机。我宁愿只安装最新的 TYPO3 版本。
这里有什么好的方法吗?我希望尽可能少地依赖外部。另外,我应该安装 TYPO3 和 Composer 吗?虽然通常建议使用 Composer,但是否建议在本地开发扩展?
由于我将在该系统上开发扩展,因此我希望所做的更改立即生效(而不必通过外部 git 存储库或 packagist 进行往返)。
使用TYPO3 9.5。
使用 DDEV 和 Composer,您可以轻松安装本地扩展。
在composer.json中,您必须声明另一个类型为
"path"
的存储库,如下所示:
"repositories": [
{
"type": "composer",
"url": "https://composer.typo3.org/"
},
{
"type": "path",
"url": "./packages/*"
}
],
将您的扩展放入该文件夹中,您可以
composer require
您的扩展。 (您的扩展需要自己的composer.json)。
Composer 会在包文件夹中找到您的扩展,并将其符号链接到您的安装中。此处描述:https://docs.typo3.org/m/typo3/guide-installation/master/en-us/MigrateToComposer/BestPractices.html
但是,该方法克隆了 TYPO3 核心并适用于当前的开发主机。我宁愿只安装最新的 TYPO3 版本。
如果您想节省空间或不需要 TYPO3 的 git 存储库提供的历史记录,您可以通过提供
--depth
选项来执行所谓的浅层克隆,并使用 --branch
后跟名称来指定要检查的分支,例如9.5
如果你想查看最新的9.5分支。如果您想查看发行版而不是最新的开发版本,这也可以使用标签而不是分支名称。
如果您的参考存储库也使用子模块,您可能还需要添加 --shallow-submodules
作为附加选项。
git clone --depth 1 --branch 9.5 ...
这将提供一个非常小的克隆来使用,并且应该加快主安装的初始下载过程。
另外,我应该安装 TYPO3 和 Composer 吗?虽然通常建议使用 Composer,但是否建议在本地开发扩展?
是的,我建议这样做,或者至少有composer.json可用。然后,您应该像安装任何其他扩展一样使用
composer require
来安装您的扩展,因为这是稍后安装您的扩展的方式,并且您应该确保它可以正常工作。当您安装了通常与您的扩展一起使用的其他扩展时,这还可以帮助识别不兼容的依赖项。
我建议的一件事是在您的composer.json中设置一个指向您的扩展的附加存储库,而不是立即在packagist上注册它。如果您想从 git 存储库下载扩展,您可能需要设置一个 VCS 存储库,例如github,或者如果您只想从同一台计算机上开发扩展的目录中符号链接您的扩展,则可以使用path-repository。当您还不想发布扩展,但希望确保它们在安装在任何其他 TYPO3 安装中时行为正确时,这两种方法都很有用。
特别是在早期开发中,我更喜欢路径存储库,因为您可以在自己的存储库中开发扩展,并且您所做的每个更改仍将在参考项目中立即可用,因为文件是符号链接的(默认情况下)。
如果您想使用 DDEV 和 Composer(您应该这样做),有一个简单的方法来设置 TYPO3:
TYPO3 DDEV 快速入门指南
您发布的指南是 TYPO3 贡献指南,这是为 TYPO3 做出贡献所必需的,但是检查核心可能对于开发扩展来说有点太多了。
始终建议将 TYPO3 与作曲家一起使用,因为它可以为您节省更新依赖项时的很多麻烦,并为您提供许多不错的功能,例如脚本。
这是 Chris Müller 撰写的另一篇有用的博客文章 (brotkrueml) 与使用 DDEV 进行本地扩展开发相关:https://brotkrueml.dev/using-ddev-for-development-of-typo3-extensions/