1

我在 Symfony 2.0 上并且了解第三方库进入 /vendor。我有两个正在使用的第三方类,一个是 TCPDF,另一个是 Paypal 类。两者都没有正式的 Symfony2 Bundles。

因此,我按照此处的说明对它们进行了命名空间并使它们在 /vendor 中可用:

将第三方库添加到 Symfony 2

这有效,我可以从我的控制器访问它们。但是,我正在重新考虑这是否正确。每当我这样做..

php bin/vendors install --reinstall

..那些自定义类消失了,因为它们在“deps”中没有 Git 存储库。这引起了实际问题,例如在尝试部署在 PagodaBox 上时。我有一种强烈的直觉,即“第三方”的代码更接近我的应用程序的代码。

如果这是真的,应该:

  • 坐在我的控制器旁边 src/MyCompany/MyBundle/Controller/tcpdf.php
  • 与我在 src/MyCompany/MyBundle/DependencyInjection/tcpdf.php 中的其他自定义编写服务一起使用
  • 进入我的包下它自己的目录:src/MyCompany/MyBundle/TCPPDF/tcpdf.php

如果我将这两个类从 /vendor 移动到上述之一,我会从带有“use”语句的控制器访问它,还是需要在“services.yml”中定义它?

我希望这不是讨论或意见的问题,而是我错过的一些指导或最佳实践,我不知道更有经验的 Symfony2 开发人员会知道。

在 Symfony 2.1 准备好之前切换到 Composer 是否明智?

谢谢阅读。

4

1 回答 1

4

如果您使用 deps 来管理供应商库,那么您应该在那里为这些库添加 git repo。

对于 TCPDF,您可以使用:

[TCPDF]
    git=git://tcpdf.git.sourceforge.net/gitroot/tcpdf/tcpdf
    target=/tcpdf

如果您有其他不在公共仓库中的库,那么您可能希望将它们提交到您自己的仓库中。

Composer 也是如此。只是添加非打包仓库的语法不同。

于 2012-06-04T15:07:20.550 回答