在Symfony2中,我在哪里放置,例如TCPDF?

时间:2012-06-04 14:23:31

标签: php symfony tcpdf

我正在使用Symfony 2.0并了解第三方库进入/供应商。我有两个我正在使用的第三方课程,一个是TCPDF,另一个是Paypal课程。没有正式的Symfony2 Bundles。

所以我按照这里的说明命名它们并使它们在/ vendor中可用:

Add third party libraries to Symfony 2

这有效,我可以从我的控制器访问它们。但是我正在重新思考,如果这是正确的事情。无论什么时候我......

php bin/vendors install --reinstall

..那些自定义类消失了,因为他们没有'deps'中的Git repo。这引起了实际问题,例如当尝试部署在例如PagodaBox。我得到了强烈的直觉,即“第三方”代码更接近我的应用代码。

如果这是真的,应该:

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

如果我将这两个类从/ vendor移到上面的某个类中,我是否可以使用'use'语句从Controller访问它,还是需要在'services.yml'中定义它?

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

即使在Symfony 2.1准备好之前切换到Composer也是明智的吗?

感谢阅读。

1 个答案:

答案 0 :(得分:4)

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

对于TCPDF,您可以使用:

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

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

对于Composer来说也是如此。只是添加非包装回购的语法是不同的。