sbooker/enumerable-doctrine

Litgroup enumerable doctrine type

1.2.2 2023-07-17 10:03 UTC

This package is auto-updated.

Last update: 2024-10-23 06:31:22 UTC


README

Latest Version Software License PHP Version Total Downloads

The sbooker/enumerable-doctrine package provides the ability to use litgroup-enumerable as a Doctrine field type.

Installation

The preferred method of installation is via Packagist and Composer. Run the following command to install the package and add it as a requirement to your project's composer.json:

composer require sbooker/enumerable-doctrine

Examples

Declare Enum and Doctrine type

class ConcreteEnum extends \LitGroup\Enumerable\Enumerable 
{
    // See LitGroup/enumerable
}

class ConcreteEnumType extends \Sbooker\DoctrineEnumerableType\EnumerableType
{
    protected function getEnumClass() : string {
        return ConcreteEnum::class;
    }

    public function getName() {
        return 'concrete_enum';
    }
}

Configuration

To configure Doctrine to use ramsey/uuid as a field type, you'll need to set up the following in your bootstrap:

\Doctrine\DBAL\Types\Type::addType('concrete_enum', ConcreteEnumType::class);

In Symfony:

doctrine:
    dbal:
        types:
            concrete_enum: ConcreteEnumType

Usage

Then, in your models, you may annotate properties by setting the @Column type to concrete_enum.

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="foo")
 */
class Foo
{
    /**
     * @var ConcreteEnum
     *
     * @ORM\Column(type="concrete_enum")
     */
    protected $enum;
}

If you use the XML Mapping instead of PHP annotations.

<field name="enum" type="concrete_enum"/>

More Information

For more information on getting started with Doctrine, check out the "Getting Started with Doctrine" tutorial.

License

See LICENSE file.