gedmo / doctrine-extensions
Doctrine行为扩展
v3.16.1
2024-06-25 16:22 UTC
Requires
- php: ^7.4 || ^8.0
- behat/transliterator: ^1.2
- doctrine/collections: ^1.2 || ^2.0
- doctrine/common: ^2.13 || ^3.0
- doctrine/deprecations: ^1.0
- doctrine/event-manager: ^1.2 || ^2.0
- doctrine/persistence: ^2.2 || ^3.0
- psr/cache: ^1 || ^2 || ^3
- psr/clock: ^1
- symfony/cache: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- doctrine/annotations: ^1.13 || ^2.0
- doctrine/cache: ^1.11 || ^2.0
- doctrine/dbal: ^3.2
- doctrine/doctrine-bundle: ^2.3
- doctrine/mongodb-odm: ^2.3
- doctrine/orm: ^2.14.0 || ^3.0
- friendsofphp/php-cs-fixer: ^3.14.0
- nesbot/carbon: ^2.71 || ^3.0
- phpstan/phpstan: ^1.11
- phpstan/phpstan-doctrine: ^1.4
- phpstan/phpstan-phpunit: ^1.4
- phpunit/phpunit: ^9.6
- rector/rector: ^1.1
- symfony/console: ^5.4 || ^6.0 || ^7.0
- symfony/doctrine-bridge: ^5.4 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^6.0 || ^7.0
- symfony/uid: ^5.4 || ^6.0 || ^7.0
- symfony/yaml: ^5.4 || ^6.0 || ^7.0
Suggests
- doctrine/mongodb-odm: to use the extensions with the MongoDB ODM
- doctrine/orm: to use the extensions with the ORM
Conflicts
- doctrine/annotations: <1.13 || >=3.0
- doctrine/dbal: <3.2 || >=4.0
- doctrine/mongodb-odm: <2.3 || >=3.0
- doctrine/orm: <2.14.0 || 2.16.0 || 2.16.1 || >=4.0
- dev-main / 3.x-dev
- v3.16.1
- v3.16.0
- v3.15.0
- v3.14.0
- v3.13.0
- v3.12.0
- v3.11.1
- v3.11.0
- v3.10.0
- v3.9.0
- v3.8.0
- v3.7.0
- v3.6.0
- v3.5.0
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.0
- v3.1.0
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v3.0.0-beta2
- v3.0.0-beta
- v2.4.x-dev
- v2.4.42
- v2.4.41
- v2.4.40
- v2.4.39
- v2.4.38
- v2.4.37
- v2.4.36
- v2.4.35
- v2.4.34
- v2.4.33
- v2.4.32
- v2.4.31
- v2.4.30
- v2.4.29
- v2.4.28
- v2.4.27
- v2.4.26
- v2.4.25
- v2.4.24
- v2.4.23
- v2.4.22
- v2.4.21
- v2.4.20
- v2.4.19
- v2.4.18
- v2.4.17
- v2.4.16
- v2.4.15
- v2.4.14
- v2.4.13
- v2.4.12
- v2.4.11
- v2.4.10
- v2.4.9
- v2.4.8
- v2.4.7
- v2.4.6
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.12
- v2.3.11
- v2.3.10
- v2.3.9
- v2.3.8
- v2.3.7
- v2.3.6
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- dev-php74
- dev-3.0/psalm
- dev-archive/master-2019-03-17
- dev-archive/wip-v2.4.0-2019-03-17
- dev-archive/2.2.x-2019-03-17
This package is auto-updated.
Last update: 2024-08-25 19:43:33 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
- 可追踪的 - 在创建、更新以及属性变更时更新字符串或引用字段,例如用户。
- 可记录的 - 帮助跟踪对象的变化和历史,也支持版本管理。
- 可缩略的 - 将指定的字段转换为唯一的缩略名。
- 可时间戳的 - 在创建、更新以及属性变更时更新日期字段。
- 可翻译的 - 提供了一种非常方便的解决方案,可以将记录翻译成不同的语言。易于设置,更易于使用。
- 树形结构 - 自动化树处理过程,并在存储库上添加一些特定的树函数。(闭包,嵌套集或物化路径) (MongoDB ODM仅支持物化路径)
仅ORM
仅MongoDB ODM
- 参考 - 支持在文档中链接实体,反之亦然
- ReferenceIntegrity - 限制ODM MongoDB文档引用
所有扩展都支持 属性、XML 和(已弃用)注解 映射。可以通过使用映射扩展轻松实现额外的映射驱动程序来处理额外的元数据映射。
版本兼容性
- DBAL:
^3.2
- ORM:
^2.14
或^3.0
- MongoDB ODM:
^2.3
如果您在没有框架的情况下设置实体管理器,请参阅 示例 以防止出现类似于 #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 依赖项 - 运行测试:
vendor/bin/phpunit
运行示例
要设置和运行示例,请按照以下步骤操作
- 转到扩展的根目录
- 下载 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