ttl/doctrine-extensions

Doctrine行为扩展

3.13 2023-09-05 14:03 UTC

This package is auto-updated.

Last update: 2024-09-05 16:35:57 UTC


README

Continuous Integration Quality Assurance Coding Standards Latest Stable Version

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

Doctrine Extensions 3.0 发布 🎉

3.0版本专注于使此包适用于今天的PHP。这包括

  • 提高PHP、Doctrine和其他依赖项的最低版本要求
  • 实现对最新Doctrine MongoDB & Common包的支持
  • 更新测试套件,添加代码和样式标准,以及其他需要的构建工具
  • 清理文档、代码、注释等

阅读升级文档以获取更多信息。

安装

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专用

所有扩展都支持 属性注解XML 映射。可以使用映射扩展轻松实现额外的映射驱动程序来处理额外的元数据映射。

版本兼容性

如果您在没有框架的情况下设置实体管理器,请参阅示例以防止类似 #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 架构也是版本化的,可以使用版本后缀使用。

运行测试

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

  • 安装 Docker 并确保您有 docker compose
  • 从项目根目录运行 docker compose up -d 以以守护进程模式启动容器
  • 通过 docker compose exec php bash 进入容器(您现在位于根目录: /var/www
  • 通过 composer install 安装 Composer 依赖
  • 运行测试: bin/phpunit -c tests/

运行示例

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

  • 转到扩展的根目录
  • 下载 composer
  • 安装开发库: composer install
  • 编辑 example/em.php 并在文件顶部配置您的数据库
  • 运行: php example/bin/consolephp example/bin/console 以运行控制台命令
  • 运行: php example/bin/console orm:schema-tool:create 以创建模式
  • 运行: php example/bin/console app:print-category-translation-tree 以运行示例并打印分类翻译树

贡献者

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

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