gpt4 book ai didi

Symfony2 将第 3 方 bundle 添加到服务 Controller

转载 作者:行者123 更新时间:2023-12-02 15:47:38 24 4
gpt4 key购买 nike

我希望获得一些有关如何将第 3 方 bundle 添加到现有服务 Controller 的帮助,特别是 KnpSnappyBundle https://github.com/KnpLabs/KnpSnappyBundle .

该 bundle 已随composer一起安装,并且app/AppKernel.php中的registerBundles()函数已更新。

我在通过其构造函数将包传递到服务 Controller 时遇到问题。

1:不确定如何找出要使用的路径

--SomeController.php file--
...
use Symfony\Component\???\???

class FormDataController
{
...
private $pdf;

2:还不确定如何确定对象类型的名称。

    public function __construct(..., KnpSnappyBundle? $pdf )
{
...
$this->pdf= $pdf;

return $this;
}

3:然后在 servives.yml 文件中,我将以下参数添加到正确的 Controller

- "@knp_snappy.pdf"

完成上述操作后, Controller 应该能够执行以下操作来访问 bundle 功能,对吗?

$this->pdf->...

最佳答案

你为什么要这样做?

引用:

The bundle registers two services:

  • the knp_snappy.image service allows you to generate images;
  • the knp_snappy.pdf service allows you to generate pdf files.

只需像这样访问它们(如果您使用标准 Symfony Controller ):

$this->get('knp_snappy.pdf')->...;
$this->get('knp_snappy.image')->...;

更新:

如果您要将 knp_snappy.pdf 服务注入(inject)自定义服务,则应使用 Knp\Bundle\SnappyBundle\Snappy\LoggableGenerator 类。

--SomeController.php file--
...
use Knp\Bundle\SnappyBundle\Snappy\LoggableGenerator;

class FormDataController
{
// ... //

private $pdf;

public function __construct(..., LoggableGenerator $pdf )
{
...
$this->pdf = $pdf;

return $this;
}

// ... //

}

当您运行./app/console container:debug命令时,它会列出所有可用的服务和相应的类。非常有帮助。

关于Symfony2 将第 3 方 bundle 添加到服务 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com