Possible Duplicate:
Using Imagick in Symfony2?如何使用Symfony2的内
我是新来的Symfony“原始” PHP MongoDB的PECL驾驶员所以这可能是一个伪问题。但自从几个小时的谷歌我还没有找到任何相关的答案,它可能值得一试这里。
因此,基本上我使用Windows,Apache,纯PHP,Mongodb和'raw'PHP_Mongodb PECL驱动程序(这里使用'raw'这个词来区别于Symfony2中的Doctrine Mongodb ODM包)。 PECL电驱动的工作完全正常,我可以只写是这样的:
<?php
$m = new Mongo();
$db = $m->myDB;
$db->find();
//Do Other DB Operations.
上面的代码工作得很好,没有任何“使用”,“包括”或“要求”语句,因为我遵循的标准说明及安装在php.ini中的PECL驱动程序扩展。在Web浏览器中显示phpinfo()时,Mongodb驱动程序信息正确显示。一切都很完美。
然后我开始使用Symfony2,因为它提供了URL重写,MVC模式,安全性和其他有用的东西。 Mongodb ODM捆绑原理很好,除此之外,在我看来,它只能坚持PHP对象。我的项目中有一堆javascript对象持久存在,除了在其上放置一个'PHP包装器'(创建一个仅包含该javascript对象的PHP对象)之外,根本没有办法做到这一点。
当我试图使用好老PECL招交谈的数据库与上述相同的代码块,我得到这个错误:
Fatal error: Class 'MyProject\Controller\Mongo' not found in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Symfony\src\MyProject\Controller\DefaultController.php on line 47.
似乎Symfony2的在PHP阻塞或overwrited扩展路径.ini,而只是寻找其自动类加载器。我想我需要更改autoload.php和/或AppKernel.php以包含该扩展名?请帮我理解这里发生了什么。我可以在Symfony2中使用PECL驱动吗?或者是Mongodb ODM 是唯一的方法访问Symfony2中的数据库?谢谢!
'new \ Mongo()',让我取你的副本: – hakre
@hakre谢谢!这非常有帮助! – Victor