在Symfony中我使用TCPDF包创建PDF文档,我通过composer安装它。在生产中使用它之前,我需要稍微修改TCPDF
类,因此我创建了扩展MyPDF
类的TCPDF
类,并将其存储在与原始类相同的文件中({{ 1}})。
问题是,每次更新作曲家和安装新版本的TCPDF软件包时,文件Symfony-project/vendor/tecnick.com/tcpdf/tcpdf.php
都会被替换,因此类tcpdf.php
会消失。什么是创建和存储这些类的最佳实践?
答案 0 :(得分:1)
您不应该在vendor/
目录中工作。它仅为外部代码保留。您可以这样做:
您可以创建一个扩展TCPDF类的服务。以下是使用this repository的服务定义:
<service id="pdfgenerator" class="TCPDF">
<file>%kernel.root_dir%/../vendor/r1pp3rj4ck/tcpdf/tcpdf.php</file>
<argument key="orientation">P</argument>
<argument key="unit">mm</argument>
<argument key="format">A4</argument>
</service>
您可以随意扩展此服务。
有关如何分叉存储库的信息,请参阅Github HowTo。拥有自己的分支后,您可以根据需要编辑代码。完成并且您的存储库准备就绪后,您只需包含自己的存储库而不是当前的 TCPDF 存储库。请参阅composer docs for more information。
您应该将这样的内容添加到composer.json
:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/..."
}
],
"require": {
".../tcpdf": "dev-master"
}
}