Skip to content

Commit

Permalink
Added functionality for automatic creation of discriminator name
Browse files Browse the repository at this point in the history
  • Loading branch information
akadlec committed Jan 8, 2016
1 parent 147f0e4 commit 1438304
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
23 changes: 22 additions & 1 deletion docs/en/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,27 @@ class Teacher extends Person implements Entities\IDiscriminatorProvider
}
```

Each entity which should be automatically added to discriminator map must implement interface ```IPub\DoctrineDynamicDiscriminatorMap\Entities\IDiscriminatorProvider``` and method **getDiscriminatorName** which have to return discriminator name.
Each entity which should be automatically added to discriminator map should implement interface ```IPub\DoctrineDynamicDiscriminatorMap\Entities\IDiscriminatorProvider``` and method ```getDiscriminatorName``` which have to return discriminator name. In case not implementing interface, extension will take short class name, lowercase first letter and use it as key value in discriminator map.


```php
<?php
namespace Your\Namespace\Entity;

use Doctrine;
use Doctrine\ORM\Mapping as ORM;

use IPub\DoctrineDynamicDiscriminatorMap\Entities;

/**
* @ORM\Entity
*/
class Principal extends Person
{
// ...
// a key for discriminator map word "principal" will be used
// ...
}
```

And that is all. No more configuration, everything is now automated.
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ private function getDiscriminatorForClass(\ReflectionClass $classReflection)
}

} else {
$discriminator = lcfirst($classReflection->getName());
$discriminator = lcfirst($classReflection->getShortName());
}

$this->ensureDiscriminatorIsUnique($discriminator, $classReflection);
Expand Down

0 comments on commit 1438304

Please sign in to comment.