2011-04-19 115 views
3

我正在努力使Doctrine 2工作。但在documentation page about the CLI tool,它包括Symfony的东西...学说2需要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来使教义工作?

对我来说这似乎完全是奇怪的,但我无法下定决心只为缺失的课程下载Symfony ...你能帮我吗?

回答

11

教义控制台东西使用了一些Symfony的组件(这是standalone libraries,从全框架分开包装)。

所以这并不奇怪 - 原则团队只是避免重塑一个完美的轮子。

+1

好的,如果它与它一起包装,我同意“该学说团队只是避免重塑一个完美的轮子。”。显然我下载了一个不包含这些组件的版本,我会再试一次。谢谢。 – 2011-04-20 16:18:43

+0

我99%确定tarball分布包含了一切。我有通过git将原则拉入项目的问题,但YMMV。 – timdev 2011-04-20 19:47:23

3

安装DoctrineSymfonyConsole可能会解决这个问题:

pear install doctrine/DoctrineSymfonyConsole 

如果从梨装主义,你可能有这样的被正常处理错误。尝试安装所有依赖项:

pear install -af doctrine/DoctrineORM 

确保没有问题。如果有缺少的软件包,它会警告你,你会想要安装这些软件包。我以前遇到的问题是 - 如果安装依赖项时出现问题,则-a(所有依赖项)都不会出错,并且即使报告成功,安装也会暂停。

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

+0

我喜欢[从GitHub安装主义(http://www.doctrine-project.org/docs/orm/2.0/en/reference/introduction.html#github) – Cobby 2011-04-20 01:27:09

+0

它实际上只是归结为偏好(比如使用YUM和编译源代码),但我认为PEAR更普遍。另一个额外的好处是不必调整默认安装的include_path。 无论哪种方式,安装只是教条/ DoctrineSymfonyConsole将解决问题。您可以使用上面我的答案中的PEAR命令,或者从答案中列出的链接@timdev下载它们。 – 2011-04-20 13:42:59

2

如果您下载最新的Doctrine tar.gz文件,Symfony控制台会预先打包。无需单独下载。您会在Doctrine文件夹中找到一个名为Symfony的文件夹。它有控制台和Yaml组件。

+0

好吧,我会尝试再次下载。 – 2011-04-20 16:19:02