【问题标题】:How to configure tcpdf when installing with Composer?使用 Composer 安装时如何配置 tcpdf?
【发布时间】:2015-04-26 08:42:49
【问题描述】:

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

【问题讨论】:

    标签: php configuration composer-php tcpdf


    【解决方案1】:

    您应该注入配置的方式是在接触第一个 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",
        ...
      ]
    }
    ...
    
    1. 使用 composer dump-autoload 重新生成 composer 自动加载器。

    【讨论】:

    • 如果使用作曲家,则无法更改K_TCPDF_EXTERNAL_CONFIG。错误是 K_TCPDF_EXTERNAL_CONFIG 已定义。
    • @OlegAbrazhaev 我已经用详细说明编辑了答案。
    猜你喜欢
    • 2015-09-26
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2014-03-09
    • 2018-12-16
    • 2023-03-30
    相关资源
    最近更新 更多