idetia/doctrine-extensions

Doctrine2 行为扩展

dev-master / 2.3.x-dev 2013-06-25 10:31 UTC

This package is auto-updated.

Last update: 2024-09-10 20:09:50 UTC


README

我在寻找此项目的维护者

如果您有兴趣维护、重构 doctrine2 扩展,请随时在问题或电子邮件中发起讨论。可以将仓库移动到维护者的账户,并将分支留在我这里。目前,我不想让用户失去他们已经习惯使用的稳定扩展。

版本 2.3.6

Build Status

注意:最近 doctrine orm 和 odm 更新为使用通用的 doctrine 映射持久层。已为其提供支持并标记为 2.3.1 版本标签。它将兼容 doctrine 映射的最新版本在 master 分支上。

最新更新

2013-03-10

  • Sluggable 添加了 'unique_base' 配置参数

2013-03-05

  • 新增扩展 - References,它将文档中的实体链接起来,反之亦然,了解更多。由 @jwage、@avalanche123、@jmikola 和 @bobthecow 贡献,谢谢。

2013-02-05

  • Sluggable 添加了对 yaml 和 xml 的 slug 处理器映射驱动程序支持。

2012-12-06

  • Blameable 扩展添加了允许在字段上设置用户名字符串或用户对象的功能,选项与 Timestampable 相同。

2012-07-05

  • Mapping 驱动程序已更新以支持最新的 doctrine 版本。

2012-05-01

  • Sluggable 现在允许在 slug 设置为空或 null 时重新生成 slug。它还允许手动设置 slug,在这种情况下,它只会进行转义并确保唯一性。

摘要和功能

此软件包包含对 Doctrine2 的扩展,它连接到 Doctrine 的功能并提供新的功能或工具,以更有效地使用 Doctrine2。此软件包包含大部分常用的行为,可以轻松地附加到您的 Doctrine2 事件系统,并以行为方式处理正在刷新的记录。扩展列表

  • - 此扩展自动处理树处理过程,并在存储库上添加了一些特定于树的函数。(闭包嵌套集物化路径
  • 可翻译的 - 为您提供了将记录翻译成不同语言的有效解决方案。易于设置,更易于使用。
  • Sluggable - 将指定的字段转换为单个唯一的 slug
  • Timestampable - 在创建、更新甚至属性更改时更新日期字段。
  • Blameable - 在创建、更新甚至属性更改时更新字符串或引用字段,可以是字符串或对象(例如用户)。
  • Loggable - 帮助跟踪对象的更改和历史,也支持版本管理。
  • 可排序的 - 使任何文档或实体可排序
  • 翻译器 - 显式处理翻译
  • 软删除 - 允许隐式删除记录
  • 可上传的 - 在实体字段中提供文件上传处理
  • References - 支持在文档中链接实体,反之亦然

目前这些扩展支持 Yaml注释Xml 映射。可以通过使用 Mapping 扩展轻松实现其他映射驱动程序,以处理额外的元数据映射。

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

注意:使用2.1.x标签以使用基于Doctrine2.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 --dev
  • 运行: phpunit -c tests
  • 可选 - 如果目标是MongoDB测试,则运行mongodb服务

运行示例

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

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

贡献者

感谢所有参与这些优秀的Doctrine2扩展开发的人!参与人员

尤其是那些创建和维护新扩展的人