2017 © Pedro Peláez
 

library doctrine-extension

DXI Doctrine Extensions

image

dxi/doctrine-extension

DXI Doctrine Extensions

  • Monday, January 25, 2016
  • by DXI-8x8
  • Repository
  • 7 Watchers
  • 2 Stars
  • 1,027 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 2 Forks
  • 2 Open issues
  • 2 Versions
  • 7 % Grown

The README.md

DXI Doctrine Extension

Doctrine 2 extensions, (*1)

Installation

Add the dxi/doctrine-extension into composer.json, (*2)

{
    "require": {
        "php":              ">=5.3.2",
        "dxi/doctrine-extension": "~1.0"
    }
}

Enum Extension

This Extension provides convenient way to create Doctrine Mapping Types from your Enum Types. For now, only marc-mabe/php-enum is supported (see https://github.com/marc-mabe/php-enum)., (*3)

  • Create your Enum Type
class MyEnum extends \MabeEnum\Enum
{
    const ONE = 'one';
    const TWO = 'two';
}
  • Define your Entity or Document
class MyEntity
{
    private $id;

    /**
     * @var MyEnum
     */
    private $myEnum;

    /**
     * @return MyEnum
     */
    public function getMyEnum()
    {
        return $this->myEnum;
    }

    /**
     * @param MyEnum $myEnum
     */
    public function setMyEnum(MyEnum $myEnum)
    {
        $this->myEnum = $myEnum;
    }

    public function getId()
    {
        return $this->id;
    }
}
  • Register your type with DBAL
use Dxi\DoctrineExtension\Enum\DBAL\DBALTypeRegistrar;
use Dxi\DoctrineExtension\Enum\DBAL\DBALTypeClassGenerator;

$targetDir = './enum-db-types';
$typeNamespace = 'My\Enum\DBALTypes';

$registrar = new DBALTypeRegistrar(new DBALTypeClassGenerator($targetDir, $typeNamespace));
$registrar->registerType('my_enum_type', '\MyEnum');

Now you can use my_enum_type with for Doctrine ORM mappings and with DBAL bindings. (see http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/custom-mapping-types.html) Notice: Field mapped as my_enum_type creates column type "VARCHAR" (32 length by default, however you can use other "string" type properties), (*4)

  • Register your type with MongoDB
use Dxi\DoctrineExtension\Enum\DBAL\DBALTypeRegistrar;
use Dxi\DoctrineExtension\Enum\DBAL\DBALTypeClassGenerator;

$targetDir = './enum-mongo-types';
$typeNamespace = 'My\Enum\MongoDbTypes';

$registrar = new MongoDbTypeRegistrar(new MongoDbTypeClassRegistrar($targetDir, $typeNamespace));
$registrar->registerType('my_enum_type', '\MyEnum');

Now you can use my_enum_type for your Doctrine MongoDB ODM mappings (see http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/basic-mapping.html#custom-mapping-types), (*5)

Reference Extension

It's a fork of the Gedmo/References extension. See https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/references.md It provides multi registry support and XML/YML mapping drivers. Note, this Extension will be removed, when it become part of Gedmo Doctrine Extension project (see https://github.com/Atlantic18/DoctrineExtensions/pull/1320), (*6)

The Versions

25/01 2016

dev-master

9999999-dev

DXI Doctrine Extensions

  Sources   Download

The Requires

  • php >=5.3.3

 

The Development Requires

orm doctrine odm enum php-enum mapping

25/01 2016

1.0.0

1.0.0.0

DXI Doctrine Extensions

  Sources   Download

The Requires

  • php >=5.3.3

 

The Development Requires

orm doctrine odm enum php-enum mapping