fcpauldiaz / doctrine-extensions
Doctrine2 行为扩展
Requires
- php: >=5.4
- behat/transliterator: ~1.0
- doctrine/common: ~2.4
Requires (Dev)
- doctrine/common: >=2.5.0
- doctrine/mongodb-odm: ~1.0
- doctrine/orm: >=2.5.0
- phpunit/phpunit: *
- symfony/yaml: ~2.6|~3.0
Suggests
- doctrine/mongodb-odm: to use the extensions with the MongoDB ODM
- doctrine/orm: to use the extensions with the ORM
- dev-master / 3.0.x-dev
- v2.4.x-dev
- 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
- 2.2.x-dev
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- dev-phpunit
- dev-travis-mongo
- dev-test-1064
- dev-trans-inheritance
- dev-wip-v2.4.0
This package is not auto-updated.
Last update: 2024-09-23 14:08:00 UTC
README
版本 3.0.0
注意: 版本 3.0.x 与从 2.5.x 开始的 ORM 和 doctrine common 库兼容,需要 PHP 5.4 或更高版本。版本 2.4.x 与从 2.2.x 到 2.5.x 的 ORM 和 doctrine common 库版本兼容
由于作者已停止使用 PHP,正在寻找维护者以确保 doctrine 扩展的稳定性。
最新更新
2016-01-27
- 嵌套树现在允许 root 字段作为关联。
- 可排序支持实体中多个可排序字段,有 BC 变更。
- 可上传支持实体中多个文件,如果用户使用了自定义的 FilenameGeneratorInterface,则可能存在隐含的 BC 变更,请参阅 #1342。
2015-12-27
- 从现在起,扩展将需要 php 5.4 或更高版本。
- 所有 trait 列表名称将参考命名策略,而不会由扩展显式设置。
- 树仓库现在使用 traits,以便更容易扩展。
扩展和文档
此包包含对 Doctrine2 的扩展,该扩展连接到 Doctrine 的功能,并提供新的功能或工具来更有效地使用 Doctrine2。此包包含大多数常用的行为,可以轻松附加到 Doctrine2 的事件系统中,并以行为方式处理正在刷新的记录。扩展列表
- 树 - 此扩展自动化树处理过程,并在仓库中添加一些特定于树的函数。 (闭包、嵌套集 或 物化路径)
- 可翻译 - 提供了一种非常便捷的方法来将记录翻译成不同的语言。易于设置,更容易使用。
- 可缩写 - 将指定的字段转换为唯一的缩写
- 时间戳 - 在创建、更新甚至属性更改时更新日期字段。
- 可归责 - 在创建、更新甚至属性更改时更新字符串或引用字段,使用字符串或对象(例如用户)。
- 可记录 - 帮助跟踪对象的变化和历史,也支持版本管理。
- 可排序 - 使任何文档或实体都可以排序
- 翻译器 - 明确处理翻译的方法
- 可软删除 - 允许隐式删除记录
- 可上传 - 在实体字段中提供文件上传处理
- 引用 - 支持在文档和实体之间链接实体
- ReferenceIntegrity - 对ODM MongoDB文档引用进行约束
- IpTraceable - 继承自Timestampable,设置IP地址而不是时间戳
目前这些扩展支持 Yaml、Annotation 和 Xml 映射。
注意:请注意,xml映射需要不同的命名空间,Doctrine扩展声明的命名空间是 doctrine-extensions.xsd,因此根节点现在看起来像这样
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-extensions.xsd" xmlns:gedmo="http://Atlantic18.github.io/DoctrineExtensions/schemas/orm/doctrine-extensions.xsd"> ... </doctrine-mapping>
XML映射xsd模式也是分版本的,可以使用版本后缀使用
- 最新版本 - http://Atlantic18.github.io/DoctrineExtensions/schemas/orm/doctrine-extensions.xsd
- 2.4.x版本 - http://Atlantic18.github.io/DoctrineExtensions/schemas/orm/doctrine-extensions-2.4.xsd
- 3.0.x版本 - http://Atlantic18.github.io/DoctrineExtensions/schemas/orm/doctrine-extensions-3.0.xsd
ODM MongoDB支持
支持ODM的扩展列表
- Translatable
- Sluggable
- Timestampable
- Blameable
- Loggable
- Translator
- Tree(目前采用Materialized Path策略)
- References
- ReferenceIntegrity
所有这些扩展可以嵌套在一起并以传统方式映射 - 注释、xml 或 yaml
运行测试
pdo-sqlite 扩展是必需的。要设置和运行测试,请按照以下步骤操作
- 安装开发库:
composer install
- 运行:
bin/phpunit -c tests
- 可选 - 如果针对mongo测试,运行mongodb服务
注意:如果使用php7与mongodb安装扩展和依赖项,请使用composer7.json。这是在更好的ODM支持可用之前的一个临时解决方案。
运行示例
要设置和运行示例,请按照以下步骤操作
- 转到扩展的根目录
- 安装开发库:
composer install
- 编辑
example/em.php
并在文件顶部配置您的数据库 - 运行:
./example/bin/console
或php example/bin/console
运行控制台命令 - 运行:
./example/bin/console orm:schema-tool:create
创建模式 - 运行:
php example/run.php
运行示例
贡献者
注意:composer7.json仅用于测试使用php7和ODM mongodb的扩展,同样适用于travis。
感谢 所有参与 这些优秀的Doctrine2扩展开发的人!
特别是那些创建和维护新扩展的人
- Lukas Botsch lbotsch
- Gustavo Adrian comfortablynumb
- Boussekeyt Jules gordonslondon
- Kudryashov Konstantin everzet
- David Buchmann dbu