yannfourgaut/enum-doctrine

There is no license information available for the latest version (dev-master) of this package.

Gestion des types enum pour Doctrine

dev-master 2017-05-25 15:23 UTC

This package is auto-updated.

Last update: 2025-04-29 00:58:02 UTC


README

Avec l'utilisation de cet autoloading, une simple class de déclaration des champs de type enum, placés dans le dossier /config/AllEnums et respectant le CamelCase suffit. Voir le fichier YannFourgaut\EnumDoctrine\Doctrine\AllEnums\Example en exemple Il suffit ensuite de déclarer dans votre entity /** @Column(type="yourenum") */

bootstrap.php

$allEnums = new \YannFourgaut\EnumDoctrine\Doctrine\ListEnums;
foreach($allEnums->files as $class => $namespace){
	Type::addType( $class, $namespace);
}

Utilisation avec DoctrineOrmServiceprovider

// Appel de la liste des types enum à ajouter à Doctrine
$allEnums = new \YannFourgaut\EnumDoctrine\Doctrine\ListEnums;

// https://github.com/dflydev/dflydev-doctrine-orm-service-provider
$app->register(new Dflydev\Provider\DoctrineOrm\DoctrineOrmServiceProvider, [

'orm.proxies_dir' => 'src/Entity/Proxy', 'orm.auto_generate_proxies' => $app['debug'], 'orm.em.options' => [ 'connection' => 'main',

	'mappings' => [
  	[
    	'type'                         => 'annotation',
    	'namespace'                    => 'src\\Entity\\',
    	'path'                         => 'src/Entity',
    	'use_simple_annotation_reader' => false,
  	],
	],
	'types' => 
  		$allEnums->files
	,

]

]);

Doctrine schema-tool:update

mysql> use mydatabase

Database changed

mysql> SHOW TABLES;

Tables_in_mydatabase
example

mysql> SHOW COLUMNS FROM example;

FieldTypeNullKeyDefaultExtra
idint(11)NOPRINULLauto_increment
enumenum('foo','bar')NONULL