teltek / doctrine-extensions
Doctrine2 行为扩展
1.0.0
2018-02-01 16:38 UTC
Requires
- php: >=5.3.2
- behat/transliterator: ~1.0
- doctrine/common: ~2.4
Requires (Dev)
- doctrine/mongodb-odm: >=1.0.0-BETA11
- doctrine/orm: ~2.4
- phpunit/phpunit: ~4.4
- phpunit/phpunit-mock-objects: ~2.3
- symfony/yaml: ~2.3
Suggests
- doctrine/mongodb-odm: to use the extensions with the MongoDB ODM
- doctrine/orm: to use the extensions with the ORM
This package is auto-updated.
Last update: 2024-09-14 20:50:55 UTC
README
本包包含 Doctrine ORM 和 MongoDB ODM 的扩展,提供了新的功能或工具以提高 Doctrine 的使用效率。这些行为可以轻松地附加到 Doctrine 的事件系统中,并以行为方式处理被刷新的记录。
⚠️ master
分支用于 Doctrine Extensions 3.0 的开发。
3.0 将专注于为今天的 PHP 刷新此包。这包括
- 提高 PHP、Doctrine 和其他依赖项的最低版本要求
- 更新测试套件,添加代码和样式标准,以及其他需要的构建工具
- 清理文档、代码、注释等
虽然 3.0 版本最初可能不会出现主要代码更改,但由于需求和技术工具的变化,它将是一个重大版本。
有关当前稳定版本,请参阅 v2.4.x 分支。
安装
$ composer require gedmo/doctrine-extensions
升级
扩展
ORM & MongoDB ODM
- 可追溯责任 - 在创建、更新甚至属性更改时更新字符串或引用字段(例如用户)。
- 可记录 - 帮助跟踪对象的更改和历史,也支持版本管理。
- 可缩略 - 将指定的字段转换为唯一的缩略名。
- 时间戳 - 在创建、更新甚至属性更改时更新日期字段。
- 可翻译 - 提供了一种非常便捷的解决方案,将记录翻译成不同的语言。易于设置,更易于使用。
- 树形结构 - 自动化树处理过程,并在存储库上添加一些特定的树函数。(闭包、嵌套集或 物化路径)(MongoDB ODM 仅支持物化路径)
ORM 专用
- 可追踪 IP - 从 Timestampable 继承而来,设置 IP 地址而不是时间戳。
- 可软删除 - 允许隐式删除记录。
- 可排序 - 使任何文档或实体可排序。
- 可上传 - 在实体字段中提供文件上传处理。
MongoDB ODM 专用
- 引用 - 支持在文档中链接实体,反之亦然。
- ReferenceIntegrity - 对ODM MongoDB文档引用进行约束
所有扩展都支持 YAML、注解 和 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的Lando开发环境工具
- 从项目根目录运行
lando start
- 确保您运行了
composer install
以安装项目依赖项 - 运行
lando php bin/phpunit -c tests
运行示例
要设置和运行示例,请按照以下步骤操作
- 转到扩展的根目录
- 下载composer:
wget https://getcomposer.org.cn/composer.phar
- 安装开发库:
php composer.phar install
- 编辑
example/em.php
并在文件顶部配置您的数据库 - 运行:
./example/bin/console
或php example/bin/console
以运行控制台命令 - 运行:
./example/bin/console orm:schema-tool:create
以创建模式 - 运行:
php example/run.php
以运行示例
贡献者
感谢所有参与这些优秀Doctrine扩展开发的人!
特别是那些创建和维护新扩展的人
- Lukas Botsch lbotsch
- Gustavo Adrian comfortablynumb
- Boussekeyt Jules gordonslondon
- Kudryashov Konstantin everzet
- David Buchmann dbu