Php 创建使用WhiteOctoberBundle扩展TCPDF的类

Php 创建使用WhiteOctoberBundle扩展TCPDF的类,php,symfony,tcpdf,Php,Symfony,Tcpdf,为了在Symfony中创建PDF文件,我将使用类。两者都是通过composer安装的 我需要通过扩展TCPDF类来创建自定义页眉和页脚,如中所述 但对我来说,唯一可行的解决方案是直接在供应商中扩展TCPDF类,然后在vendor/whiteoctober/TCPDF bundle/DependencyInjection/Configuration.php中的getConfigTreeBuilder()方法内的WhiteOctorberBundle中将MYPDF类设置为默认类 因此,我的Confi

为了在Symfony中创建PDF文件,我将使用类。两者都是通过composer安装的

我需要通过扩展TCPDF类来创建自定义页眉和页脚,如中所述

但对我来说,唯一可行的解决方案是直接在供应商中扩展TCPDF类,然后在vendor/whiteoctober/TCPDF bundle/DependencyInjection/Configuration.php中的getConfigTreeBuilder()方法内的WhiteOctorberBundle中将MYPDF类设置为默认类

因此,我的Configuration.php文件如下所示:

public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('white_october_tcpdf');

        $rootNode
            ->children()
                ->scalarNode('file')->defaultValue('%kernel.root_dir%/../vendor/tecnick.com/tcpdf/tcpdf.php')->end()
                ->scalarNode('class')->defaultValue('MYPDF')->end()
            ->end();

        $this->addTCPDFConfig($rootNode);

        return $treeBuilder;
    }
问题在于,直接在供应商中扩展TCPDF类是一种不好的做法,它会导致MYPDF类在每次更新TCPDF包时消失。我应该将MYPDF类放置在何处,这样它就可以保持对WhiteOctoberBundle的访问,同时不会被放置在供应商文件夹中?

Bundle作者:此处:-)这是在中,但供快速参考:

  • 创建您的
    MYPDF
    类,并将其放置在您正常的Symfony2代码库中的某个位置-比如说在
    src/Acme/DemoBundle/MYPDF.php

    该类需要扩展通过供应商引入的基本TCPDF类。如果不是,则会引发异常

  • config.yml
    或类似文件中:

    white_october_tcpdf:
        class: 'Acme\DemoBundle\MYPDF'
    
  • 然后,您应该能够根据以下文档使用此功能:

    $pdfObj = $container->get("white_october.tcpdf")->create();
    
    这将为您的
    MYPDF
    类提供一个新实例


  • Symfony官方网站建议
    AppBundle\Utils

    资料来源: