从Zend Framework生成Doctrine2实体导致Helper em未定义

时间:2011-08-26 14:23:06

标签: zend-framework doctrine-orm

早上好,

我是Doctrine2的新手,正在尝试将其与Zend Framework 1.11集成。我尝试使用ortr:generate-entities从doctrine命令行生成我的模型。但是,当我这样做时,我收到以下错误:

[InvalidArgumentException] 帮助者'em'未定义。

我必须遵循哪些步骤来生成在ZF中使用的模型和实体?

以下是bootstrap.php的内容:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDoctrine(){
require_once('usr/share/pear/Doctrine/Common/ClassLoader.php');

$autoloader = Zend_Loader_Autoloader::getInstance();
$classLoader= new usr/share/pear/Doctrine/Common('Entities',
realpath(Zend_Registry::get('config')->resources->EntityManager->connection->entities),
'LoadClass');

$autoLoader->pushAutoLoader(array($classLoader, 'LoadClass'), 'Entities');
$classLoader = new \Doctrine\Common\ClassLoader('Repositories',
    realpath(Zend_Registry::get('config')->resources->entityManager->connection->entities), 'loadClass');



$autoloader->pushAutoloader(array($classLoader, 'loadClass'), 'Repositories');     

$em=\Doctrine\ORM\EntityManager::create($options['db'],$config);
Zend_Registry::set('em',$em);

return $em;
}

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您可以选择的一些选项:

1.查看zendcasts,它有关于如何集成doctrine 2和ZF 1的有用的截屏视频和指南,以及如何使用它们来处理数据库操作以及与zend_auth.make的深度集成,也一定要检查其他截屏视频。检查here是否有完整的截屏视频索引。

2.购买“易于使用ZEND FRAMEWORK的PHP网站”一书,这是doctrine2集成的一个很好的资源,您可以从以下地址免费访问项目文件。 在README中,您可以找到此分步指南: 1.克隆主义2

$ git clone git://github.com/doctrine/doctrine2.git doctrine2-orm
  1. 将以下三个目录复制到z2d2 library目录中名为Doctrine的目录中:

    LIB /学说/ ORM LIB /供应商/学说-common / lib目录/教义/通用 LIB /供应商/教义-DBAL / LIB /学说/ DBAL

  2. 将以下目录复制到z2d2 library目录:

    LIB /供应商/ Symfony的

  3. 完成后,您的library目录应如下所示:

    library/
      Doctrine/
      Common/
      DBAL/
      ORM/
    Symfony/
    WJG/
    

    您还需要修改Doctrine数据库连接参数和实体/代理/存储库路径。这些参数都可以在application.ini.example文件中找到。在进行更改之前,请将此文件重命名为application.ini

    最后,您需要使用包含的Doctrine CLI生成模式,使用以下命令在application目录中完成:

    $ ./scripts/doctrine orm:schema-tool:create
    

    3.你的第三个选择是在github上使用Bisna项目.README文件很清楚,但我建议你也阅读this blog post。 Bisna项目可能是最强大的集成。对于已经包含了bisna的示例项目,请检查Zend-Framework-Starter-Kit

      git clone git://github.com/nvoyageur/Zend-Framework-Starter-Kit.git