如何在Symfony2项目中正确集成第三方库

时间:2013-03-26 11:19:05

标签: php symfony symfony-2.1 symfony-2.2

我正在开发一个Symfony 2.2项目,我需要将视频上传到Vimeo。我通过Vimeo.php (official library of Vimeo)

使用高级Vimeo API

我设法将一个名称空间添加到库中,并将其添加到我的包中的实体文件夹中,因为这是项目检测库的唯一方法。

<?php
**namespace MediaBundle\Entity;**

use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException as Exception;

class Vimeo
{
    .... Vimeo.php Code ....
}
?>

我正在尝试找到一种更好的方法将此库集成到我的代码中。我试图放在vendor / vimeo文件夹中并从app / autoload.php自动加载它

没有命名空间:

$loader->registerPrefixes(array(
    'Vimeo_' => __DIR__.'/../vendor/vimeo/lib',
));

使用命名空间:

$loader->registerNamespaces(array(
    'Vimeo' => __DIR__.'/../vendor/vimeo/lib',
));

控制器中仍未识别该类。

为了自动化我尝试使用作曲家包dukt/vimeo的过程,它基本上是同一个库,只是包装到composer中。它将它放在autoload_namespaces.php中,但我仍然无法在任何控制器中使用它。它总是找不到。

也许我没有提出正确的使用陈述。 autoload_namespaces.php代码为:

'Dukt\\Vimeo' => $vendorDir . '/dukt/vimeo/src/',

/dukt/vimeo/src中有一个namespace Dukt;的Vimeo.php类。我在控制器中的使用声明应该是什么?

请告诉我将第三方库集成到Symfony2项目中的最佳方法。我会继续通过实体使用它,但是我遇到了一些错误,我认为由于回调路径错误,API无法正常运行。我可能错了。尽管如此,我还是想正确地加入它。

1 个答案:

答案 0 :(得分:2)

通过Composer安装the wrapper package。它将处理所有自动加载的东西。