szykra / resource-naming-strategy
Doctrine ORM 的资源命名策略
0.1.4
2020-09-30 21:12 UTC
Requires
- doctrine/orm: ~2.3
- icanboogie/inflector: ~1.3.0|~2.0.0
Requires (Dev)
- phpspec/phpspec: ~2.0
README
Doctrine ORM 的资源命名策略
为什么是 资源?
这个命名策略遵循对 实体 和 资源 的自然思考方式。想象一下你只有一朵 花。这是一个单一实体。你想要存储一些关于 花 的数据,例如在你的数据库中。它是一个 资源。
简单吗?我知道将资源命名为 flower 听起来更容易,但有时它可能会更令人困惑。最后,你有很多花,而不仅仅是一朵。
这个策略与 Laravel 命名约定类似(参见映射部分)。
要求
此包使用 icanboogie/inflector,并需要 mbstring php 扩展。
安装
通过 composer 安装
将依赖项添加到你的 composer.json 文件中,并运行 composer update。
"require": { "szykra/resource-naming-strategy": "~0.1" }
使用
与 Doctrine 一起使用
$namingStrategy = new \Szykra\NamingStrategy\ResourceNamingStrategy(); $configuration()->setNamingStrategy($namingStrategy);
与 Symfony 一起使用
你可以有两种方式使用这个命名策略
在 AppKernel.php 中注册包
只需打开你的 AppKernel.php 文件,并注册包含服务定义的新 symfony 包。
$bundles = array( ... new Szykra\NamingStrategy\ResourceNamingBundle\ResourceNamingBundle() );
现在你可以在 config.yml 中配置 Doctrine 以使用新的命名策略。
doctrine: orm: naming_strategy: szykra.naming_strategy.resource_naming_strategy
定义自己的服务
如果你不想注册额外的包,你可以在 services.yml 中创建自己的服务定义。
services: app.naming_strategy.resource: class: Szykra\NamingStrategy\ResourceNamingStrategy
别忘了配置 Doctrine 以使用此服务。
映射
实体到表名称
小写且复数
属性到列名称
小写字母,单词之间用下划线分隔
嵌入字段到列名称
小写字母,单词之间用下划线分隔
连接列名称
小写字母,单词之间用下划线分隔,后缀为 _id
连接表名称
两个单数小写实体名称,按升序排列,单词之间用下划线分隔
许可证
MIT 许可证。版权所有 © 2015 - 2020 Szymon Krajewski。