Download the PHP package wucdbm/entity-extend-bundle without Composer
On this page you can find all versions of the php package wucdbm/entity-extend-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download wucdbm/entity-extend-bundle
More information about wucdbm/entity-extend-bundle
Files in wucdbm/entity-extend-bundle
Package entity-extend-bundle
Short Description Easy doctrine entities extending
License MIT
Homepage https://github.com/wucdbm/PjEntityExtendBundle
Informations about the package entity-extend-bundle
PjEntityExtendBundle
The PjEntityExtendBundle is symfony2 bundle, which lets extend doctrine ORM entities. Doctrine MappedSupperclass is useful when you want to declare common information for other entities, but every new it's subclass must be new entity. Sometimes you need to extend existing entity, without introducing new one. PjEntityExtendBundle can help you.
Installation
Composer
Enable the bundle
Usage
PjEntityExtendBundle can be used with annotations or yml mapping. Lets say you have Product entity:
and you want to add extra field (lets say description) to it without changing BaseProduct class. This is simple from OOP point of view:
but now doctrine will think that CustomProduct is new entity with it's own DB table and this is problem, because we want that CustomProduct would be same product entity and would use same DB table. With PjEntityExtendBundle you can solve this problem. First of all you need to add extended entities list to your config.yml:
Second step is to say that CustomProduct extends BaseProduct mapping information.
Annotations mapping
If you are using annotations mapping, you need to add @ExtentedEntity annotation to CustomProduct class:
yml mapping
If you are using yml mapping, you need to add extended_entity property to CustomProduct.yml:
That's it. Now doctrine will know, that CustomProduct is mapped with same products DB table. If you are using doctrine migrations, generated migration will add descrition field to products table instead of creating new DB table.
Of course PjEntityExtendBundle can be used not only for adding new fields, but for overriding already defined as well, for example increasing name field's length.
All versions of entity-extend-bundle with dependencies
symfony/framework-bundle Version ~2.3|~3.0
doctrine/orm Version >=2.2.3
doctrine/doctrine-bundle Version *