Doctrine 2需要Symfony吗?

3
我正在尝试让Doctrine 2工作。但在关于CLI工具的文档页面中,它包含了一些Symfony的内容...
$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
    'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
    'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));

这是什么?为什么需要使用Symfony才能使Doctrine工作?

这对我来说完全不合理,但我无法决定只为缺少的类而下载Symfony...你能帮帮我吗?

3个回答

11

Doctrine控制台使用了一些Symfony组件(这些组件是独立的库,与完整框架分开打包)。

因此,这并不奇怪——Doctrine团队只是避免重复发明轮子。


1
好的,如果它与包一起提供,我同意“Doctrine 团队避免重新发明一个完全良好的轮子”的观点。 显然,我下载的版本没有包含这些组件,我会再试一次。 谢谢。 - Matthieu Napoli
我99%确定tarball分发包含所有内容。我曾经通过git将doctrine引入项目时遇到问题,但你的情况可能不同。 - timdev

3
安装DoctrineSymfonyConsole可能会解决它:
pear install doctrine/DoctrineSymfonyConsole

如果您是通过pear安装Doctrine,则可能会出现错误,但这些错误会被优雅地处理。请尝试安装所有依赖项:
pear install -af doctrine/DoctrineORM

确保没有问题。如果有缺少的软件包,它应该会警告你,并且你需要安装它们。我曾经遇到过这样的问题,在安装依赖项时,-a(所有依赖项)没有出错,即使存在安装依赖项的问题,安装也停止了,尽管它报告了成功。

http://pear.doctrine-project.org/


我喜欢从GitHub上安装Doctrine - Cobby
这实际上只是个人偏好的问题(就像使用YUM与编译源代码一样),但我认为PEAR更加通用。另一个额外的好处是不需要调整默认安装的include_path。无论哪种方式,只需安装doctrine/DoctrineSymfonyConsole即可解决问题。您可以使用我上面回答中的PEAR命令,也可以从@timdev在他的回答中列出的链接下载它们。 - A.J. Brown

2
如果您下载最新的Doctrine tar.gz文件,Symfony Console已经预装在其中,无需进行单独下载。您会在Doctrine文件夹中找到一个名为Symfony的文件夹,其中包含Console和Yaml组件。请注意保留HTML标签。

好的,我会尝试重新下载。 - Matthieu Napoli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接