2012-09-25 40 views
1

我需要将TCPDF作为第三方库集成到Symfony 2.1中。如何在Symfony 2.1中的composer.json中提供第三方库并在我们的软件包中访问库?

我composer.json试过像

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "git://tcpdf.git.sourceforge.net/gitroot/tcpdf/tcpdf" 
    } 
], 
"require": { 
    "tcpdf/tcpdf":"*" 
}, 

但它给出了一个错误The requested package tcpdf * could not be found.

如何给在composer.json文件正确的第三方库?

TCPDF库不遵循名称空间,所以我们如何才能在我们的包中访问这个库?

回答

5

找不到的原因是tcpdf库中的包名是tecnick.com/tcpdf,所以这就是你应该要求的。

也就是说,因为它可用on packagist您不需要在composer.json中添加vcs存储库。

+0

谢谢。我们如何直接访问我们的自定义包中的tcpdf库?我们如何在AppKernel中创建一个tcpdf实例? –

+0

'新的TCPDF()'或者你想要实例化的类名应该只在包安装后工作,它会自动加载。 – Seldaek

+0

当运行这个命令'php composer.phar update'时,'tecnick.com/tcpdf'被克隆。之后,它会等待一段时间,而不会在命令提示符下显示任何内容,并显示错误消息'[RuntimeException]进程超时。'我在AppKernel中添加了'new TCPDF()',但它给了我一个错误'Class' TCPDF'找不到'。我编辑了文件'/ vendor/composer/autoload_real.php'并添加了一行'require $ vendorDir。 '/tecnick.com/tcpdf/tcpdf.php';'。它给我一个错误'调用未定义的方法TCPDF :: getName()'。所以我认为autoload工作不正常。 –

0

还有several packagesPackagist上的TCPDF相关 - 它们中的一些是与Symfony集成的bundle。

+0

我正在寻找支持symfony版本'2.1'的包。但是我没有看到任何完美的东西。 –

+0

我在我的composer.json中使用“tcpdf/tcpdf”:“dev-master”。在我的app/autoload.php中:require_once __DIR __。'/ ../vendor/tcpdf/tcpdf/tcpdf.php';然后我写了一个扩展\ TCPDF的自己的Helper类。有用。 – stwe

-1

由于tcpdf不支持composer,因此您需要使用软件包存储库。造成这种情况的文档,请访问:

http://getcomposer.org/doc/05-repositories.md#package-2

请注意,它们的配置示例既有distsource其中source是你所需要的。您可能还需要配置自动加载以匹配tcpdf的自动加载。您也可以在composer网站上找到相关文档。

一件好事还会发送给tcpdf作者一封电子邮件,并询问他们是否不介意添加composer.json。

+0

TCPDF自5.9.181(2012-08-31)支持作曲家 – wdev

相关问题