教义2 + zf 1.11

时间:2011-03-05 17:33:26

标签: php zend-framework doctrine-orm

我正在尝试设置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文件夹位于我的包含路径中。我已经在网上搜寻了想法。你能建议什么?感谢

3 个答案:

答案 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。