早上好,
我是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;
}
非常感谢你的帮助!
答案 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
将以下三个目录复制到z2d2 library
目录中名为Doctrine的目录中:
LIB /学说/ ORM LIB /供应商/学说-common / lib目录/教义/通用 LIB /供应商/教义-DBAL / LIB /学说/ DBAL
将以下目录复制到z2d2 library
目录:
LIB /供应商/ Symfony的
完成后,您的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