sbooker / enumerable-doctrine
Litgroup enumerable doctrine type
Installs: 4 660
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^7.3 || ^8.0
- doctrine/dbal: ^2.3 || ^3.0
- litgroup/enumerable: ^0.8
This package is auto-updated.
Last update: 2024-10-23 06:31:22 UTC
README
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.