karser/doctrine-extensions

Doctrine2 行为扩展

v2.3.9 2014-01-12 16:34 UTC

README

版本 2.3.9

Build Status

注意: 扩展 2.3.x 与 ORM 和 doctrine common 库版本从 2.2.x2.4.x 兼容

最新更新

2014-03-20

DoctrineExtensionsgithub 上的新家位于 ORM designer 组织下。我相信随着时间的推移,它将会有更多的改进,并且扩展的原始作者将继续作为该项目的核心成员。它被移到其他地方的原因主要是因为更多的热情人士会为项目带来更多想法,并对其未来保持兴趣,特别是当它与他们的日常工作愿景相关时。

2014-01-12

  • Uploadable 支持上传文件名 #915, #924, #910
  • Tree-MaterializedPath 修复了当代理对象被安排删除时的问题 #937
  • Sluggable 关系slug处理程序选项用于urlize非slug关系字段 #947
  • Sluggable 传递一个对象给urlizer #941
  • IpTraceable 新扩展,基于timestampable跟踪IP地址 #912

摘要和功能

此包包含 Doctrine2 的扩展,它挂钩到 Doctrine 的功能,并提供了新的功能或工具来更有效地使用 Doctrine2。此包包含大多数常用的行为,可以轻松地附加到 Doctrine2 的事件系统,并以行为方式处理正在冲刷的记录。扩展列表

  • Tree - 此扩展自动化树处理流程,并在仓库中添加了一些特定的树函数。(闭包嵌套集物化路径
  • Translatable - 提供了一种非常方便的将记录翻译成不同语言的方法。易于设置,使用更简单。
  • Sluggable - 将指定的字段urlize为单个唯一的slug
  • Timestampable - 在创建、更新甚至属性更改时更新日期字段。
  • Blameable - 在创建、更新甚至属性更改时更新字符串或引用字段,使用字符串或对象(例如用户)。
  • Loggable - 帮助跟踪对象的变化和历史,也支持版本管理。
  • Sortable - 使任何文档或实体可排序
  • Translator - 明确处理翻译的方式
  • Softdeleteable - 允许隐式删除记录
  • Uploadable - 在实体字段中提供文件上传处理
  • References - 支持在文档中链接实体,反之亦然
  • IpTraceable - 从 Timestampable 继承,设置IP地址而不是时间戳

目前这些扩展支持 YamlAnnotationXml 映射。可以使用映射扩展轻松实现其他映射驱动程序,以处理其他元数据映射。

注意: 请注意,xml 映射需要不同的命名空间,Doctrine 扩展声明的命名空间为 http://gediminasm.org/schemas/orm/doctrine-extensions-mapping,因此根节点现在看起来像这样

注意:要使用基于 Doctrine2.1.x 版本的扩展,请使用 2.1.x 标签。当前 master 分支基于 2.2.x 版本,可能不支持 2.1.x。

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                 xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
...
</doctrine-mapping>

XML 映射 xsd 架构也是分版本的,可以通过版本后缀使用。

ODM MongoDB 支持

支持 ODM 的扩展列表

  • 可翻译
  • 可生成缩略词
  • 可记录时间戳
  • 可指责任
  • 可记录日志
  • 翻译器
  • 树(目前使用物化路径策略)
  • 参考
  • 可排序

所有这些扩展可以嵌套在一起,并以传统方式(注释、XML 或 YAML)进行映射。

您可以在我的博客上测试这些扩展:我的博客。所有基本用法示例教程也在这里。您还可以从 GitHub 仓库 分支或克隆此博客。

运行测试

需要 PHPUnit 3.6 或更高版本。要设置和运行测试,请按照以下步骤操作

  • 转到扩展的根目录
  • 下载 composer: wget https://getcomposer.org.cn/composer.phar
  • 安装开发库: php composer.phar install
  • 运行: phpunit -c tests
  • 可选 - 如果针对 mongo 测试,运行 mongodb 服务

运行示例

要设置和运行示例,请按照以下步骤操作

  • 转到扩展的根目录
  • 下载 composer: wget https://getcomposer.org.cn/composer.phar
  • 安装开发库: php composer.phar install
  • 编辑 example/em.php 并在文件顶部配置您的数据库
  • 运行: ./example/bin/consolephp example/bin/console 以运行控制台命令
  • 运行: ./example/bin/console orm:schema-tool:create 以创建架构
  • 运行: php example/run.php 以运行示例

贡献者

感谢所有参与这些优秀 Doctrine2 扩展开发的人!查看贡献者

特别是创建和维护新扩展的人