Symfony Pdfbundle无法正常工作

时间:2015-05-17 16:08:38

标签: php symfony

当试图将pdfBundle与symfony一起使用时,我得到以下错误,到目前为止我所做的全部是通过symfony安装pdfbundle并在app.php中注册。

Catchable fatal error: Argument 1 passed to Silex\Application::register() must implement interface Silex\ServiceProviderInterface, instance of Ps\PdfBundle\PsPdfBundle given, called in C:\wamp\www\computername\Project1\app\bootstrap.php on line 20 and defined in C:\wamp\www\computername\Project1\vendor\silex\silex\src\Silex\Application.php on line 165

我的作曲家文件如下所示:

{
"require": {
    "silex/silex": "~1.1",
    "components/jquery": "2.1.0",
    "twig/twig": "1.18.0",
    "symfony/twig-bridge": "2.3.*",
    "psliwa/pdf-bundle": "dev-master",
    "knplabs/repository-service-provider": "dev-master",
    "sensio/framework-extra-bundle": "3.0.7"
},
"autoload": {
    "psr-0": {
        "Defensie": "src/"
    }
}

}

App.php:

....
$app->register(new Ps\PdfBundle\PsPdfBundle());
....

如果您需要更多信息,请继续询问。

1 个答案:

答案 0 :(得分:1)

  

尝试将pdfBundle与symfony一起使用

首先,看起来您正在使用基于Symfony2的微框架Silex。

因此,您尝试使用Symfony2捆绑包,但将其注册为Silex服务提供商。

$app->register(new Ps\PdfBundle\PsPdfBundle());

您无法将Symfony2中的第三方捆绑包与Silex连接。 Silex使用" ServiceProviderInterface"连接第三方捆绑包。 http://silex.sensiolabs.org/doc/providers.html

interface ServiceProviderInterface
{
    public function register(Application $app);

    public function boot(Application $app);
}

因此,捆绑包应该已经实现了服务提供者以将其集成到Silex,或者您必须自己实现它以连接第三方lib。以下是如何创建服务提供程序以集成Buzz客户端http://php-and-symfony.matthiasnoback.nl/2012/02/silex-creating-a-service-provider-for-buzz/

的示例