【问题标题】:How can I add a composer.json to a static TYPO3 project?如何将 composer.json 添加到静态 TYPO3 项目?
【发布时间】:2016-12-30 14:57:01
【问题描述】:

我正在使用带有许多扩展的工作 TYPO3 7.6.14 环境。现在我想手动添加一个 composer.json 文件。我不想创建一个新项目来下载最新的 TYPO3 核心和 TYPO3 扩展。恐怕这可能会意外覆盖某些扩展的 PHP 文件。 我需要一种安全的方法来添加一个不会自动更改当前 TYPO3 PHP 文件的 composer.json 文件。我更喜欢手动下载 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/TCPPDF-master/tcpdf.php 下解压了 TCPDF 文件。我想使用 TCPDF、TYPO3 及其扩展,并且不会被任何 composer 命令更新。

【问题讨论】:

    标签: typo3 composer-php


    【解决方案1】:

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

    但是,我建议使用波浪号 ~ 运算符来启用一致分支上的更新,例如自动包含安全更新。对于 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 中查找有关该信息的详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多