使用 Composer 安装时如何配置 tcpdf?

How to configure tcpdf when installing with Composer?

我们的遗留 PHP 代码包括 tcpdf (https://github.com/tecnickcom/TCPDF) 作为代码库的一部分。

我正在尝试将其移出到 vendor 文件夹,因此我将 Composer 添加到项目中,将 TCPDF 添加到 composer.json 并进行了更新。

但是 config/tcpdf_config.php 文件在我们的代码库中被修改(自定义 PDF 作者姓名等),根据文档,这是正确的:http://www.tcpdf.org/installation.php

现在,我不确定修改 vendor/tecnick.com/tcpdf/config/tcpdf_config.php 是否是个好主意,因为它可能会在我更新时被 Composer 覆盖。另外,tcpdf 文档中没有关于 Composer 的字眼。

在允许 Composer 更新的同时配置 tcpdf(或通过 Composer 使用的任何第三方库)的正确解决方案是什么?

您应该注入配置的方式是在接触第一个 TCPDF 之前先定义所有常量 class。

确保也将常量 K_TCPDF_EXTERNAL_CONFIG 设置为 true。这将阻止自动配置搜索您正在谈论的文件。 (在此处查看此文件的第 60 行:http://sourceforge.net/p/tcpdf/code/ci/master/tree/tcpdf_autoconfig.php

这很好地隐藏在文档中,但我发现了这个:http://www.tcpdf.org/doc/code/example__019_8php.html

如何使用 Composer 覆盖 TCPDF 配置

  1. 将原始 tcpdf_config.php 复制到您的项目的某处,例如 src/tcpdf_config.php
  2. 在配置副本的开头添加 define('K_TCPDF_EXTERNAL_CONFIG', true);,然后根据需要修改配置的其余部分。
  3. 编辑您的 composer.json 和 add/update autoload 部分:
...
"autoload": {
  ...
  "files": [
    "src/tcpdf_config.php",
    ...
  ]
}
...
  1. 使用 composer dump-autoload.
  2. 重新生成作曲家自动加载器