ttl / doctrine-extensions
Doctrine行为扩展
3.13
2023-09-05 14:03 UTC
Requires
- php: ^7.2 || ^8.0
- behat/transliterator: ^1.2
- doctrine/annotations: ^1.13 || ^2.0
- doctrine/collections: ^1.2 || ^2.0
- doctrine/common: ^2.13 || ^3.0
- doctrine/event-manager: ^1.2 || ^2.0
- doctrine/persistence: ^2.2 || ^3.0
- psr/cache: ^1 || ^2 || ^3
- symfony/cache: ^4.4 || ^5.3 || ^6.0
- symfony/deprecation-contracts: ^2.1 || ^3.0
Requires (Dev)
- doctrine/cache: ^1.11 || ^2.0
- doctrine/dbal: ^2.13.1 || ^3.2
- doctrine/doctrine-bundle: ^2.3
- doctrine/mongodb-odm: ^2.3
- doctrine/orm: ^2.10.2
- friendsofphp/php-cs-fixer: ^3.4.0 <3.10
- nesbot/carbon: ^2.55
- phpstan/phpstan: ^1.10.2
- phpstan/phpstan-doctrine: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^8.5 || ^9.5
- rector/rector: ^0.15.20
- symfony/console: ^4.4 || ^5.3 || ^6.0
- symfony/phpunit-bridge: ^6.0
- symfony/yaml: ^4.4 || ^5.3 || ^6.0
Suggests
- doctrine/mongodb-odm: to use the extensions with the MongoDB ODM
- doctrine/orm: to use the extensions with the ORM
Conflicts
- doctrine/dbal: <2.13.1 || ^3.0 <3.2
- doctrine/mongodb-odm: <2.3
- doctrine/orm: <2.10.2 || 2.16.0 || 2.16.1
- sebastian/comparator: <2.0
This package is auto-updated.
Last update: 2024-09-05 16:35:57 UTC
README
此包包含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专用
- References - 支持在文档中链接实体,反之亦然
- ReferenceIntegrity - 限制ODM MongoDB文档引用
所有扩展都支持 属性、注解 和 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 架构也是版本化的,可以使用版本后缀使用。
- 最新版本 - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- 2.2.x 版本 - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- 2.1.x 版本 - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
运行测试
要设置和运行测试,请按照以下步骤操作
- 安装 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/console
或php example/bin/console
以运行控制台命令 - 运行:
php example/bin/console orm:schema-tool:create
以创建模式 - 运行:
php example/bin/console app:print-category-translation-tree
以运行示例并打印分类翻译树
贡献者
感谢所有参与这些优秀的 Doctrine 扩展开发的人!
特别是那些创建和维护新扩展的人
- Lukas Botsch lbotsch
- Gustavo Adrian comfortablynumb
- Boussekeyt Jules gordonslondon
- Kudryashov Konstantin everzet
- David Buchmann dbu