簡體   English   中英

設置擴展TCPDF的類

[英]Set class that extends TCPDF

在Symfony中,我使用TCPDF包創建PDF文檔,並通過composer安裝了它。 在生產中使用TCPDF類之前,需要對其進行一些修改,因此我創建了MyPDF類,該類擴展了TCPDF類,並與原始類存儲在同一文件中( Symfony-project/vendor/tecnick.com/tcpdf/tcpdf.php )。

問題是,每次我更新作曲家並安裝新版本的TCPDF軟件包時,文件tcpdf.php都會被替換,因此MyPDF類消失了。 創建和存儲此類的最佳實踐是什么?

您不應在vendor/目錄中工作。 僅保留用於外部代碼。 您可以執行以下操作:

  • 您可以派生TCPDF存儲庫並應用其更改。 之后,您只需使用自己的該倉庫的分支即可。 缺點是您可能會錯過重要的錯誤修復。 如果您對代碼應用的補丁對任何人都很重要,也歡迎您提出拉取請求 ,將您的修訂合並回主存儲庫。
  • 您可以創建擴展TCPDF類服務 這是我使用此存儲庫的服務定義:

     <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.json添加以下內容:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/..."
        }
     ],
     "require": {
         ".../tcpdf": "dev-master"
     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM