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

Dáv*_*zki 3 php configuration tcpdf composer-php

我们的旧版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使用的任何第三方库)的正确解决方案是什么?

Sve*_*ven 5

您应该注入配置的方式是先定义所有常量,然后再接触第一个TCPDF类。

确保还将常数设置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和添加/更新autoload部分:
...
"autoload": {
  ...
  "files": [
    "src/tcpdf_config.php",
    ...
  ]
}
...
Run Code Online (Sandbox Code Playgroud)
  1. 使用重新生成作曲家自动加载器composer dump-autoload

  • @OlegAbrazhaev我已经用详细说明编辑了答案。 (2认同)