我正在尝试设置Doctrine 2来玩ZF 1.11一段时间。我设法解决了除一个错误之外的所有错误:
PHP Fatal error: Class 'Doctrine\ORM\Configuration' not found in C:\development\porjects\application\Bootstrap.php on line 258
以下是Bootstrap.php文件中的_iniDoctrine()函数,直到错误消息引用的第258行:
protected function _initDoctrine()
{
$this->bootstrap('autoload');
require_once('Doctrine/Common/ClassLoader.php');
// Create the doctrine autoloader and remove it from the spl autoload stack (it adds itself)
require_once 'Doctrine/Common/ClassLoader.php';
$doctrineAutoloader = array(new \Doctrine\Common\ClassLoader(), 'loadClass');
spl_autoload_unregister($doctrineAutoloader);
$autoloader = Zend_Loader_Autoloader::getInstance();
// Push the doctrine autoloader to load for the Doctrine\ namespace
$autoloader->pushAutoloader($doctrineAutoloader, 'doctrine');
$classLoader = new \Doctrine\Common\ClassLoader('Entities', realpath(__DIR__ . '/models/'), 'loadClass');
$autoloader->pushAutoloader(array($classLoader, 'loadClass'), 'Entities');
$classLoader = new \Doctrine\Common\ClassLoader('Symfony', realpath(__DIR__ . '/../library/Doctrine/'), 'loadClass');
$autoloader->pushAutoloader(array($classLoader, 'loadClass'), 'Symfony');
$doctrineConfig = $this->getOption('doctrine');
$config = new \Doctrine\ORM\Configuration();
显然,应用程序无法“看到”Configuration类(和文件)。如果我在实例化类之前手动要求该类。另一个类/文件显示为“看不见”。 “手动”修复肯定不行。
包含这些文件的Doctrine文件夹位于我的包含路径中。我已经在网上搜寻了想法。你能建议什么?感谢
答案 0 :(得分:1)
我实现制作ZF 1.x& Doctrine 2使用this application resource一起工作很好,可以在github上找到并且有详细记录。
希望有所帮助
答案 1 :(得分:1)
如果您希望集成Doctrine 2 + Zend Framework,您可能需要使用其中一个Doctrine开发人员提供的“粘合剂”(Guilherme Blanco) https://github.com/guilhermeblanco/ZendFramework1-Doctrine2
如果您还没有看过Ralph Schindler和Guilherme Blanco的演讲,Slideshare上有一个。 http://www.slideshare.net/ralphschindler/zend-framework-1-doctrine-2-6177485
此外,Ralph在Github上有一个很好的示例应用程序。 https://github.com/ralphschindler/NOLASnowball/tree/doctrine2-managed-crud#
答案 2 :(得分:0)
在ZendCasts上还有关于如何实现Guilerme适配器的精彩截屏视频。寻找单元测试Doctrine 2 Entities。