roukmoute/doctrine-prefix-bundle
最新稳定版本:v2.0.0
Composer 安装命令:
composer require roukmoute/doctrine-prefix-bundle
包简介
Listener that prefixes tables and sequences
README 文档
README
A Symfony bundle that automatically prefixes Doctrine ORM table names, indexes, unique constraints, and PostgreSQL sequences.
Prefixes are useful when you need to:
- Share a database with tables from another project
- Use reserved SQL keywords as entity names (like
userorgroup) - Organize tables by application or module
Requirements
- PHP ^8.1
- Symfony ^6.4 || ^7.0
- Doctrine ORM ^3.0
Installation
composer require roukmoute/doctrine-prefix-bundle
With Symfony Flex, the bundle is automatically registered.
Configuration
# config/packages/roukmoute_doctrine_prefix.yaml roukmoute_doctrine_prefix: prefix: 'app_'
Options
| Option | Type | Default | Description |
|---|---|---|---|
prefix |
string | '' |
The prefix to prepend to names |
bundles |
array | [] |
If set, only entities from these namespaces will be prefixed |
encoding |
string | 'UTF-8' |
The encoding for the prefix |
Example with bundle filtering
roukmoute_doctrine_prefix: prefix: 'app_' bundles: - 'App\Entity' - 'Acme\BlogBundle\Entity'
What gets prefixed?
| Element | Example (prefix: app_) |
|---|---|
| Table names | user → app_user |
| Index names | idx_email → app_idx_email |
| Unique constraint names | uniq_email → app_uniq_email |
| Many-to-many join tables | user_role → app_user_role |
| PostgreSQL sequences | user_id_seq → app_user_id_seq |
Example
use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] #[ORM\Table( indexes: [new ORM\Index(name: 'idx_email', columns: ['email'])], uniqueConstraints: [new ORM\UniqueConstraint(name: 'uniq_username', columns: ['username'])] )] class User { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 180)] private ?string $email = null; #[ORM\Column(length: 50)] private ?string $username = null; #[ORM\ManyToMany(targetEntity: Role::class)] private Collection $roles; }
With prefix: 'app_', this will generate:
- Table:
app_user - Index:
app_idx_email - Unique constraint:
app_uniq_username - Join table:
app_user_role
License
MIT
统计信息
- 总下载量: 19.4k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-09-29