如何将composer.json添加到静态TYPO3项目?

时间:2016-12-30 14:57:02

标签: composer-php typo3 composer.json

我正在使用具有许多扩展功能的TYPO3 7.6.14环境。现在我想手动添加composer.json文件。我不想创建一个新项目,它将下载最新的TYPO3核心和TYPO3扩展。我担心这可能会意外地覆盖某些扩展的PHP文件。 我需要一种安全的方法来添加一个composer.json文件,该文件不会自动更改当前的TYPO3 PHP文件。我更喜欢手动下载TYPO3和扩展名。因此我不想使用作曲家模式。我必须找到一种方法来阻止作曲家覆盖我自己编写的PHP文件。

我需要一个composer.json文件,因为我想添加外部TCPDF库,它位于文件系统上,而不是在TYPO3内部的供应商文件夹中。 TYPO3 7.6不再支持ext_autoload.php文件。

我已阅读https://usetypo3.com/typo3-and-composer.html#c51条建议。但它只显示了如何使用命令行和composer命令创建新的TYPO3项目。是否也可以将composer.json文件下载到TYPO3文件夹(哪个?),以告诉自动加载器它将在哪里找到外部TCPDF库? 我在/var/www/html/TCPDF-master/tcpdf.php下解压缩了TCPDF文件。我想使用TCPDF,TYPO3及其扩展名保持不变,并且永远不会被任何作曲家命令更新。

1 个答案:

答案 0 :(得分:2)

介绍Composer不使用它的功能对我来说似乎有点奇怪,但是,是的,可以在存储库中定义专用版本或commit-hash来禁用更新。

但是,我建议使用代字号~运算符来启用对分支的更新,例如自动包含安全更新。对于TYPO3 CMS,此依赖关系将如下所示,以保持7.6分支:

"require": {
  "typo3/cms": "~7.6.14"
}

详细了解如何在Composer documentation中声明版本。

除此之外,似乎你根本没有使用Composer进行根项目。然后,您可以使用以下选项之一为TCPDF创建包装器扩展:

  1. 将Composer用于require TCPDF的扩展程序,并在包装​​器扩展程序中加载生成的自动加载文件(例如在typo3conf/ext/tcpdf/vendor/autoload.php中)
  2. 直接复制&粘贴TCPDF的源代码(这似乎是您可以使用的方案)并将自动加载信息添加到ext_emconf.php,类似于之前的ext_autoload.php - 在blog post about class loading中查找有关该信息的详细信息