fincallorca / doctrine-behaviors
Doctrine2行为Sequenceable特性
此包的官方仓库似乎已不存在,因此该包已被冻结。
0.0.5
2018-02-07 16:10 UTC
Requires
- php: >=5.4
- doctrine/common: >=2.2
- doctrine/orm: ^2.5
- symfony/framework-bundle: ~3.0
Requires (Dev)
README
除了DoctrineExtensions库或KNP Labs的Doctrine Behaviors,此Bundle还为您的实体添加了sequence
行为。
Sequenceable
行为在实体更改时备份实体。与其他行为一样,该捆绑包通过注解工作。
功能:
- 特定属性注解
- 与其它行为兼容(KNP,Gedmo等)
限制:
- 仅在MySQL/MariaDB上进行测试
- 仅在注解上进行测试
目录
集成
通过Composer安装
composer require fincallorca/doctrine-behaviors "dev-master"
将Bundle添加到Symfony应用程序
将SequenceableBundle
添加到app/AppKernel.php
use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; class AppKernel extends Kernel { public function registerBundles() { return [ // [...] new Fincallorca\DoctrineBehaviors\SequenceableBundle\SequenceableBundle(), ]; } // [...] }
通过配置添加ORM过滤器
通过config.yml
doctrine: orm: entity_managers: default: filters: sequenceable_filter: class: Fincallorca\DoctrineBehaviors\SequenceableBundle\EventListener\SequenceableSubscriber enabled: true
基础
使用特性
当使用注解映射时,您可以使用Sequenceable
特性进行快速操作。
至少必须有一个标记为SequenceableID
的字段。该字段的值是用于搜索已存在备份数量的序列列标识符。
<?php use Doctrine\ORM\Mapping as ORM; use Fincallorca\DoctrineBehaviors\SequenceableBundle as SequenceableBehavior; /** * @ORM\Entity * @ORM\Table(name="my_entity") */ class MyEntity { /** * Hook sequenceable behavior (adds field sequenceable). */ use SequenceableBehavior\Entity\Sequenceable; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(length=128) * @SequenceableBehavior\Annotation\SequenceableID */ private $title; }