ahs / doctrine-extensions

Doctrine2 行为扩展

v2.4.38 2019-11-08 22:33 UTC

README

Build Status Latest Stable Version

此包包含对 Doctrine ORM 和 MongoDB ODM 的扩展,提供了新的功能或工具,以更高效地使用 Doctrine。这些行为可以轻松地附加到 Doctrine 的事件系统中,并以行为方式处理正在冲刷的记录。

安装

$ composer require gedmo/doctrine-extensions

扩展

ORM & MongoDB ODM

  • Blameable - 在创建、更新甚至属性更改时更新字符串或引用字段(例如用户)。
  • Loggable - 帮助跟踪对象的更改和历史,也支持版本管理。
  • Sluggable - 将指定的字段转换为单个唯一的短链接。
  • Timestampable - 在创建、更新甚至属性更改时更新日期字段。
  • Translatable - 提供了一个非常实用的解决方案,用于将记录翻译成不同的语言。易于设置,更易于使用。
  • Tree - 自动化树处理过程,并在仓库中添加一些特定的树函数。(闭包嵌套集物化路径(MongoDB ODM 仅支持物化路径)

ORM 仅支持

  • IpTraceable - 继承自 Timestampable,设置 IP 地址而不是时间戳。
  • SoftDeleteable - 允许隐式删除记录。
  • Sortable - 使任何文档或实体可排序。
  • Uploadable - 在实体字段中提供文件上传处理。

MongoDB ODM 仅支持

所有扩展都支持 YAMLAnnotationXML 映射。可以通过使用映射扩展轻松实现额外的映射驱动程序,以处理额外的元数据映射。

版本兼容性

如果您在没有框架的情况下设置实体管理器,请参阅 示例 以防止像 #1310 这样的问题。

XML 映射

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

<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 架构也是版本化的,可以通过版本后缀使用。

运行测试

pdo-sqlite 扩展是必需的。

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

  • 进入扩展的根目录
  • 下载 composer: wget https://getcomposer.org.cn/composer.phar
  • 安装开发库: php composer.phar install
  • 运行: bin/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 以运行示例

贡献者

感谢所有参与这些优秀 Doctrine 扩展开发的人!链接

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