fincallorca/doctrine-behaviors

Doctrine2行为Sequenceable特性

此包的官方仓库似乎已不存在,因此该包已被冻结。

0.0.5 2018-02-07 16:10 UTC

This package is auto-updated.

Last update: 2024-05-29 03:33:30 UTC


README

LICENSE Packagist LICENSE https://jqueryjs.cn/ https://jqueryjs.cn/

除了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;
}