最后检查时间:ZF2.2.*、DoctrineORMModule 0.7.
你可能希望通过 composer 加载 DoctrineORMModule
:
doctrine/doctrine-orm-module
到 require 部分(由于格式问题,示例代码在列表后面)php composer.phar install
./data/DoctrineORMModule/Proxy
并确保你的应用程序拥有写入权限/config/autoload
配置 doctrine,以提供项目特定的设置(如数据库等)给模块config.php
中配置 doctrine 的实体映射DoctrineORMModule
和 DoctrineModule
添加到你的 config/application.config.php
./vendor/bin/doctrine-module orm:schema-tool:create
我强烈不建议你不使用 composer,因为这是安装依赖项并设置自动加载器的简单方法。而且,ZF2 默认通过 composer 发布。
{
"require" : {
"php": ">=5.3.3",
"zendframework/zendframework": "2.*"
"doctrine/doctrine-orm-module": "0.*"
}
}
<?php
return array(
'doctrine' => array(
'driver' => array(
// defines an annotation driver with two paths, and names it `my_annotation_driver`
'my_annotation_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(
'path/to/my/entities',
'another/path'
),
),
// default metadata driver, aggregates all other drivers into a single one.
// Override `orm_default` only if you know what you're doing
'orm_default' => array(
'drivers' => array(
// register `my_annotation_driver` for any entity under namespace `My\Namespace`
'My\Namespace' => 'my_annotation_driver'
)
)
)
)
);
需要注意的一个问题:您实体的路径应该是完全限定的。最好从__DIR__
开始,否则会出现问题(每个新项目我都会想为什么命令行工具不起作用,直到我找到这个错误...;)
<?php
return array(
'doctrine' => array(
'connection' => array(
// default connection name
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'username',
'password' => 'password',
'dbname' => 'database',
)
)
)
),
);
Marco Pivetta制作了一份精彩的关于doctrine-module使用的演示文稿,我建议每个使用此模块的人都去看一下。
Jason Grimes写了一篇教程,该教程被phpdeveloper.org推荐,在官方推出模块之前,应对安装doctrine可能会有所帮助。
更新:
我深入研究了一下,发现Zend Framework 2对Doctrine 2的本地支持仍在开发中。我建议关注这个Github Gist以监控进展如何。
与此同时,您可能想查看Michiel Staessen的zf2-doctrine-provider存储库。目前还没有文档,但一旦您了解了Bisna库在ZF 1.x中的工作原理,它将是一个合乎逻辑的下一步。
我很高兴看到,关于ZF2对Doctrine的本地支持的大部分讨论都集中在灵活性上。我希望(显然其他人也是如此),在Zend Framework中使用Doctrine不会成为一个非此即彼的选择,而是一种构建坚实而灵活的领域模型特定部分的选项。
原始帖子:
幸运的是,学习ZF 1.x + Doctrine的大部分主要资源都考虑到了迁移到ZF2。它们没有涵盖ZF2中Doctrine的本地支持,但应该可以帮助您开始了解许多主要原则。
Zendcasts有一个出色的Doctrine 2教程系列,从“单元测试Doctrine 2实体”开始。确保观看随后的视频,因为Jon L.(主持人)在进展中继续融入最佳实践。
Zend Technologies有一个明确的网络研讨会,题为“Zend Framework v1 + Doctrine v2”。演讲者特别讨论了如何构建示例应用程序以适应ZF2迁移。
至于ZF2本地支持,我还没有找到任何东西。Rob Allen著名的ZF2教程使用Zend\Db,而Nick Belhomme的《Zend Framework 2.0 Cookbook》中尚未涵盖Doctrine。
祝您好运,并请发布您在ZF2 / D2上找到的任何优秀资源。