【发布时间】:2014-01-22 06:42:32
【问题描述】:
我想在我的 symfony 2 项目中添加一个外部库。我用的是2.4版本。我已经阅读了很多“操作方法”,但所有解决方案都不适用于此版本。
你能告诉我如何在我的项目中添加我的课程吗?
我的班级Html2Pdf:
<?php
class Html2Pdf
{
// Code ...
}
?>
【问题讨论】:
我想在我的 symfony 2 项目中添加一个外部库。我用的是2.4版本。我已经阅读了很多“操作方法”,但所有解决方案都不适用于此版本。
你能告诉我如何在我的项目中添加我的课程吗?
我的班级Html2Pdf:
<?php
class Html2Pdf
{
// Code ...
}
?>
【问题讨论】:
您了解服务吗?
如果你想在控制器中使用那个 YoutubeDownloader 类,你必须将它定义为一个服务,这样你就可以在任何你想要的地方调用。
在里面打开你的 services.yml;
YourBundle/Resources/config/services.yml
parameters:
youtubeDownload: YourBundle/YourPathToClass
services:
bundlename.controllername.controller:
class: "%youtubeDownload%"
更多信息: http://symfony.com/doc/current/cookbook/controller/service.html
【讨论】:
您可以在使用 \Html2Pdf 的类中调用它,就像使用任何无命名空间的类一样。
更新:
当您使用 Symfony 和 Composer 时,类和命名空间已经映射,因此您只需使用 \Html2Pdf 命名空间包含它。 \ 表示它是基于根级别的命名空间,而不是相对命名空间(在同一文件夹中)。
如果您没有使用 Composer 或带有自动加载器的东西,那么您需要使用 include_once('**path to file**/Html2Pdf.php') 将文件包含在堆栈中的某个位置(这可以在当前文件或某种服务于该文件的父文件中)。然后,您可以像使用 Symfony/Composer 和 \ 一样使用它。
【讨论】:
include_once("blah\blah\Html2Pdt.php")。我可能写错了,因为我不记得最后一个像我included 一个文件(显然在框架中太长了)。
这对我有用。
include_once $this->get('kernel')->getRootDir() . '/../path/to/Html2Pdt.php';
$aHtml2Pdt = new \Html2Pdt();
我认为这就是@Qoop 想要表达的意思。
希望对你有帮助。
【讨论】: