/** * {@inheritDoc} */ public function process(ContainerBuilder $container) { if (!$container->hasDefinition('doctrine')) { $container->removeDefinition('sonata.easy_extends.doctrine.mapper'); return; } $mapper = $container->getDefinition('sonata.easy_extends.doctrine.mapper'); foreach (DoctrineCollector::getInstance()->getAssociations() as $class => $associations) { foreach ($associations as $field => $options) { $mapper->addMethodCall('addAssociation', array($class, $field, $options)); } } foreach (DoctrineCollector::getInstance()->getDiscriminatorColumns() as $class => $columnDefinition) { $mapper->addMethodCall('addDiscriminatorColumn', array($class, $columnDefinition)); } foreach (DoctrineCollector::getInstance()->getDiscriminators() as $class => $discriminators) { foreach ($discriminators as $key => $discriminatorClass) { $mapper->addMethodCall('addDiscriminator', array($class, $key, $discriminatorClass)); } } foreach (DoctrineCollector::getInstance()->getInheritanceTypes() as $class => $type) { $mapper->addMethodCall('addInheritanceType', array($class, $type)); } foreach (DoctrineCollector::getInstance()->getIndexes() as $class => $indexes) { foreach ($indexes as $field => $options) { $mapper->addMethodCall('addIndex', array($class, $field, $options)); } } foreach (DoctrineCollector::getInstance()->getUniques() as $class => $uniques) { foreach ($uniques as $field => $options) { $mapper->addMethodCall('addUnique', array($class, $field, $options)); } } }
/** * @param array $config * @return void */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); if (class_exists($config['class']['rubric'])) { //Связь рубрика - материалы ( getContents() ) $collector->addAssociation($config['class']['rubric'], 'mapOneToMany', array('fieldName' => 'contents', 'targetEntity' => $config['class']['content'], 'cascade' => array('remove', 'persist', 'refresh', 'merge', 'detach'), 'mappedBy' => 'rubric', 'orphanRemoval' => false, 'orderBy' => array('id' => 'ASC'))); //Связь материал - рубрика $collector->addAssociation($config['class']['content'], 'mapManyToOne', array('fieldName' => 'rubric', 'targetEntity' => $config['class']['rubric'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'contents', 'joinColumns' => array(array('name' => 'rubric_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } if (class_exists($config['class']['author']) && $config['class']['author']) { $collector->addAssociation($config['class']['content'], 'mapManyToOne', array('fieldName' => 'author', 'targetEntity' => $config['class']['author'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'author_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } if ($config['class']['editor'] && class_exists($config['class']['editor'])) { $collector->addAssociation($config['class']['content'], 'mapManyToOne', array('fieldName' => 'createdBy', 'targetEntity' => $config['class']['editor'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'createdby_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['content'], 'mapManyToOne', array('fieldName' => 'updatedBy', 'targetEntity' => $config['class']['editor'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'updatedby_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } if (class_exists($config['class']['contentfile']) && $config['class']['contentfile']) { $collector->addAssociation($config['class']['content'], 'mapOneToMany', array('fieldName' => 'files', 'targetEntity' => $config['class']['contentfile'], 'cascade' => array('remove', 'persist'), 'mappedBy' => 'content', 'orphanRemoval' => true, 'orderBy' => array('pos' => 'ASC'))); $collector->addAssociation($config['class']['contentfile'], 'mapManyToOne', array('fieldName' => 'content', 'targetEntity' => $config['class']['content'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'files', 'joinColumns' => array(array('name' => 'content_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')))); } if (class_exists($config['class']['contentimage']) && $config['class']['contentimage']) { $collector->addAssociation($config['class']['content'], 'mapOneToMany', array('fieldName' => 'images', 'targetEntity' => $config['class']['contentimage'], 'cascade' => array('remove', 'persist'), 'mappedBy' => 'content', 'orphanRemoval' => true, 'orderBy' => array('pos' => 'ASC'))); $collector->addAssociation($config['class']['contentimage'], 'mapManyToOne', array('fieldName' => 'content', 'targetEntity' => $config['class']['content'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'images', 'joinColumns' => array(array('name' => 'content_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')))); } if (class_exists($config['class']['contentlink']) && $config['class']['contentlink']) { $collector->addAssociation($config['class']['content'], 'mapOneToMany', array('fieldName' => 'links', 'targetEntity' => $config['class']['contentlink'], 'cascade' => array('all'), 'mappedBy' => 'content', 'orphanRemoval' => true, 'orderBy' => array('pos' => 'ASC'))); $collector->addAssociation($config['class']['contentlink'], 'mapManyToOne', array('fieldName' => 'content', 'targetEntity' => $config['class']['content'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'links', 'joinColumns' => array(array('name' => 'content_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')))); $collector->addAssociation($config['class']['contentlink'], 'mapManyToOne', array('fieldName' => 'linkContent', 'targetEntity' => $config['class']['content'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'link_content_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')))); } }
/** * @param array $config * * @return void */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['docente'], 'mapOneToMany', array('fieldName' => 'entidadeducativaHasDocentes', 'targetEntity' => $config['class']['entidadeducativa_has_docente'], 'cascade' => array('persist'), 'mappedBy' => 'media', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['entidadeducativa_has_docente'], 'mapManyToOne', array('fieldName' => 'docente', 'targetEntity' => $config['class']['docente'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'entidadeducativaHasDocentes', 'joinColumns' => array(array('name' => 'iddocente', 'referencedColumnName' => 'iddocente')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['entidadeducativa_has_docente'], 'mapManyToOne', array('fieldName' => 'entidadeducativa', 'targetEntity' => $config['class']['entidadeducativa'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'entidadeducativaHasDocentes', 'joinColumns' => array(array('name' => 'idDocente', 'referencedColumnName' => 'idDocente')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['entidadeducativa'], 'mapOneToMany', array('fieldName' => 'entidadeducativaHasDocentes', 'targetEntity' => $config['class']['entidadeducativaHasDocentes'], 'cascade' => array('persist'), 'mappedBy' => 'entidadeducativa', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } }
/** * @covers \Sonata\EasyExtendsBundle\Mapper\DoctrineCollector::getIndexes * @covers \Sonata\EasyExtendsBundle\Mapper\DoctrineCollector::getInheritanceTypes * @covers \Sonata\EasyExtendsBundle\Mapper\DoctrineCollector::getDiscriminatorColumns * @covers \Sonata\EasyExtendsBundle\Mapper\DoctrineCollector::getAssociations * @covers \Sonata\EasyExtendsBundle\Mapper\DoctrineCollector::getDiscriminators */ public function testDefaultValues() { $collector = DoctrineCollector::getInstance(); $this->assertEquals(array(), $collector->getIndexes()); $this->assertEquals(array(), $collector->getInheritanceTypes()); $this->assertEquals(array(), $collector->getDiscriminatorColumns()); $this->assertEquals(array(), $collector->getAssociations()); $this->assertEquals(array(), $collector->getDiscriminators()); }
/** * @param array $config * @return void */ public function registerDoctrineMapping(array $config) { if (!class_exists($config['class']['basket'])) { return; } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['basket'], 'mapManyToOne', array('fieldName' => 'customer', 'targetEntity' => $config['class']['customer'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'customer_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'unique' => true)), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['basket'], 'mapOneToMany', array('fieldName' => 'basketElements', 'targetEntity' => $config['class']['basket_element'], 'cascade' => array('persist'), 'mappedBy' => 'basket', 'orphanRemoval' => true)); $collector->addAssociation($config['class']['basket_element'], 'mapManyToOne', array('fieldName' => 'basket', 'targetEntity' => $config['class']['basket'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => 'basketElements', 'joinColumns' => array(array('name' => 'basket_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); }
/** * Registers doctrine mapping on concrete dashboard entities. * * @param array $config */ public function registerDoctrineMapping(array $config) { if (!class_exists($config['class']['dashboard'])) { return; } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['dashboard'], 'mapOneToMany', array('fieldName' => 'blocks', 'targetEntity' => $config['class']['block'], 'cascade' => array('remove', 'persist', 'refresh', 'merge', 'detach'), 'mappedBy' => 'dashboard', 'orphanRemoval' => false, 'orderBy' => array('position' => 'ASC'))); $collector->addAssociation($config['class']['block'], 'mapOneToMany', array('fieldName' => 'children', 'targetEntity' => $config['class']['block'], 'cascade' => array('remove', 'persist'), 'mappedBy' => 'parent', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); $collector->addAssociation($config['class']['block'], 'mapManyToOne', array('fieldName' => 'parent', 'targetEntity' => $config['class']['block'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => 'children', 'joinColumns' => array(array('name' => 'parent_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['block'], 'mapManyToOne', array('fieldName' => 'dashboard', 'targetEntity' => $config['class']['dashboard'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'blocks', 'joinColumns' => array(array('name' => 'dashboard_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { if (!class_exists($config['class']['order'])) { return; } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['order'], 'mapOneToMany', array('fieldName' => 'orderElements', 'targetEntity' => $config['class']['order_element'], 'cascade' => array('persist'), 'mappedBy' => 'order', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['order'], 'mapManyToOne', array('fieldName' => 'customer', 'targetEntity' => $config['class']['customer'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => 'orders', 'joinColumns' => array(array('name' => 'customer_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['order_element'], 'mapManyToOne', array('fieldName' => 'order', 'targetEntity' => $config['class']['order'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'order_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addIndex($config['class']['order_element'], 'product_type', array('product_type')); $collector->addIndex($config['class']['order_element'], 'order_element_status', array('status')); $collector->addIndex($config['class']['order'], 'order_status', array('status')); $collector->addIndex($config['class']['order'], 'payment_status', array('payment_status')); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } $collector->addAssociation($config['class']['work'], 'mapManyToOne', array('fieldName' => 'image', 'targetEntity' => $config['class']['media'], 'cascade' => array(0 => 'remove', 1 => 'persist', 2 => 'refresh', 3 => 'merge', 4 => 'detach'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'image_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); //work gallery $collector->addAssociation($config['class']['work'], 'mapManyToOne', array('fieldName' => 'gallery', 'targetEntity' => $config['class']['gallery'], 'cascade' => array(0 => 'remove', 1 => 'persist', 2 => 'refresh', 3 => 'merge', 4 => 'detach'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'gallery_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['work'], 'mapManyToOne', array('fieldName' => 'author', 'targetEntity' => $config['class']['user'], 'cascade' => array(1 => 'persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'author_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['work'], 'mapManyToOne', array('fieldName' => 'collection', 'targetEntity' => $config['class']['collection'], 'cascade' => array(1 => 'persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'collection_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['work'], 'mapManyToMany', array('fieldName' => 'tags', 'targetEntity' => $config['class']['tag'], 'cascade' => array(1 => 'persist'), 'joinTable' => array('name' => 'portfolio__work_tag', 'joinColumns' => array(array('name' => 'post_id', 'referencedColumnName' => 'id')), 'inverseJoinColumns' => array(array('name' => 'tag_id', 'referencedColumnName' => 'id'))))); }
/** * @param array $config * @return void */ public function registerDoctrineMapping(array $config) { // print 'Extends!'; if (!class_exists($config['class']['rubric'])) { return; } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['rubric'], 'mapOneToMany', array('fieldName' => 'children', 'targetEntity' => $config['class']['rubric'], 'cascade' => array('remove', 'persist', 'refresh', 'merge', 'detach'), 'mappedBy' => 'parent', 'orphanRemoval' => false, 'orderBy' => array('left' => 'ASC'))); //ИНДЕКСЫ $collector->addIndex($config['class']['rubric'], 'lftrgt', array('lft', 'rgt')); $collector->addIndex($config['class']['rubric'], 'lvl', array('lvl')); $collector->addIndex($config['class']['rubric'], 'created_at', array('created_at')); $collector->addIndex($config['class']['rubric'], 'updated_at', array('updated_at')); $collector->addIndex($config['class']['rubric'], 'full_path', array('full_path')); /* $collector->addAssociation($config['class']['rubric'], 'mapManyToOne', array( 'fieldName' => 'parent', 'targetEntity' => $config['class']['rubric'], 'cascade' => array( ), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array( array( 'name' => 'parent_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL', ), ), 'orphanRemoval' => false, )); <many-to-one field="parent" target-entity="Application\Iphp\CoreBundle\Entity\Rubric"> <join-column name="parent_id" referenced-column-name="id" on-delete="SET NULL"/> <gedmo:tree-parent/> </many-to-one> */ $collector->addAssociation($config['class']['rubric'], 'mapOneToMany', array('fieldName' => 'blocks', 'targetEntity' => $config['class']['block'], 'cascade' => array('remove', 'persist', 'refresh', 'merge', 'detach'), 'mappedBy' => 'rubric', 'orphanRemoval' => false, 'orderBy' => array('position' => 'ASC'))); $collector->addAssociation($config['class']['block'], 'mapOneToMany', array('fieldName' => 'children', 'targetEntity' => $config['class']['block'], 'cascade' => array('remove', 'persist'), 'mappedBy' => 'parent', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); $collector->addAssociation($config['class']['block'], 'mapManyToOne', array('fieldName' => 'parent', 'targetEntity' => $config['class']['block'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => 'children', 'joinColumns' => array(array('name' => 'parent_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['block'], 'mapManyToOne', array('fieldName' => 'rubric', 'targetEntity' => $config['class']['rubric'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => 'blocks', 'joinColumns' => array(array('name' => 'rubric_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); if ($config['class']['user'] && class_exists($config['class']['user'])) { $collector->addAssociation($config['class']['rubric'], 'mapManyToOne', array('fieldName' => 'createdBy', 'targetEntity' => $config['class']['user'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'createdby_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['rubric'], 'mapManyToOne', array('fieldName' => 'updatedBy', 'targetEntity' => $config['class']['user'], 'cascade' => array('persist'), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'updatedby_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } }
/** * @param array $config * @return void */ public function registerDoctrineMapping(array $config) { if (!class_exists($config['class']['transaction'])) { return; } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['transaction'], 'mapManyToOne', array('fieldName' => 'order', 'targetEntity' => $config['class']['order'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'order_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addIndex($config['class']['transaction'], 'status_code', array('status_code')); $collector->addIndex($config['class']['transaction'], 'state', array('state')); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['user'], 'mapManyToMany', array('fieldName' => 'groups', 'targetEntity' => $config['class']['group'], 'cascade' => array(), 'joinTable' => array('name' => $config['table']['user_group'], 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'inverseJoinColumns' => array(array('name' => 'group_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE'))))); }
/** * @param array $config */ public function registerDoctrineORMMapping(array $config, ContainerBuilder $container) { foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } if ($config['db_driver'] != 'orm') { return; } $baseNameSpace = 'Networking\\InitCmsBundle\\Entity'; $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['page'], 'mapManyToMany', array('fieldName' => 'translations', 'targetEntity' => $config['class']['page'], 'mappedBy' => 'originals')); $collector->addAssociation($config['class']['page'], 'mapManyToMany', array('fieldName' => 'originals', 'targetEntity' => $config['class']['page'], 'inversedBy' => "translations", 'cascade' => array('persist'), 'joinTable' => array('name' => $container->getParameter('cms.table.page_translation'), 'joinColumns' => array(array('name' => 'translation_id', 'referencedColumnName' => 'id')), 'inverseJoinColumns' => array(array('name' => 'original_id', 'referencedColumnName' => 'id'))))); //LayoutBlock $collector->addAssociation($baseNameSpace . '\\LayoutBlock', 'mapManyToOne', array('fieldName' => 'page', 'targetEntity' => $config['class']['page'], 'inversedBy' => "layoutBlock", 'cascade' => array('persist', 'detach'), 'joinColumns' => array(array('name' => 'page_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')))); //MenuItem $collector->addAssociation($baseNameSpace . '\\MenuItem', 'mapManyToOne', array('fieldName' => 'page', 'targetEntity' => $config['class']['page'], 'inversedBy' => "menuItem", 'cascade' => array('persist'), 'joinColumns' => array(array('name' => 'page_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL', 'nullable' => 'true')))); //PageSnapshot $collector->addAssociation($baseNameSpace . '\\PageSnapshot', 'mapManyToOne', array('fieldName' => 'page', 'targetEntity' => $config['class']['page'], 'inversedBy' => "snapshots", 'cascade' => array('persist'))); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['media'], 'mapOneToMany', array('fieldName' => 'galleryHasMedias', 'targetEntity' => $config['class']['gallery_has_media'], 'cascade' => array('persist'), 'mappedBy' => 'media', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery_has_media'], 'mapManyToOne', array('fieldName' => 'gallery', 'targetEntity' => $config['class']['gallery'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'galleryHasMedias', 'joinColumns' => array(array('name' => 'gallery_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery_has_media'], 'mapManyToOne', array('fieldName' => 'media', 'targetEntity' => $config['class']['media'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'galleryHasMedias', 'joinColumns' => array(array('name' => 'media_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery'], 'mapOneToMany', array('fieldName' => 'galleryHasMedias', 'targetEntity' => $config['class']['gallery_has_media'], 'cascade' => array('persist'), 'mappedBy' => 'gallery', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); if (class_exists($config['user_age_demographics']['class']['entity'])) { $collector->addAssociation($config['user_age_demographics']['class']['entity'], 'mapOneToOne', array('fieldName' => 'user', 'targetEntity' => $config['user']['class']['entity'], 'cascade' => array(1 => 'detach'), 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'mappedBy' => null, 'inversedBy' => null, 'orphanRemoval' => true)); } if (class_exists($config['user_age_demographics']['class']['entity'])) { $collector->addAssociation($config['user_age_demographics']['class']['entity'], 'mapManyToOne', array('fieldName' => 'collection', 'targetEntity' => $config['user_age_demographics']['class']['reference_entity'], 'cascade' => array(1 => 'detach'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'collection_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); } if (interface_exists('Sonata\\ClassificationBundle\\Model\\CollectionInterface')) { if (class_exists($config['user_authentication_logs']['class']['entity']) && $config['user_authentication_logs']['enabled']) { $collector->addAssociation($config['user_authentication_logs']['class']['entity'], 'mapManyToOne', array('fieldName' => 'user', 'targetEntity' => $config['user']['class']['entity'], 'cascade' => array(1 => 'detach'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); } } }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { if (!class_exists($config['class']['product'])) { return; } $collector = DoctrineCollector::getInstance(); /* * DELIVERY */ $collector->addAssociation($config['class']['delivery'], 'mapManyToOne', array('fieldName' => 'product', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'deliveries', 'joinColumns' => array(array('name' => 'product_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); /* * PACKAGE */ $collector->addAssociation($config['class']['package'], 'mapManyToOne', array('fieldName' => 'product', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'packages', 'joinColumns' => array(array('name' => 'product_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); /* * PRODUCT CATEGORY */ $collector->addAssociation($config['class']['product_category'], 'mapManyToOne', array('fieldName' => 'product', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'productCategories', 'joinColumns' => array(array('name' => 'product_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product_category'], 'mapManyToOne', array('fieldName' => 'category', 'targetEntity' => $config['class']['category'], 'cascade' => array('persist'), 'mappedBy' => null, 'joinColumns' => array(array('name' => 'category_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE')), 'orphanRemoval' => false)); /* * PRODUCT COLLECTION */ $collector->addAssociation($config['class']['product_collection'], 'mapManyToOne', array('fieldName' => 'product', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'productCollections', 'joinColumns' => array(array('name' => 'product_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product_collection'], 'mapManyToOne', array('fieldName' => 'collection', 'targetEntity' => $config['class']['collection'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'productCollection', 'joinColumns' => array(array('name' => 'collection_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE')), 'orphanRemoval' => false)); /* * PRODUCT */ $collector->addAssociation($config['class']['product'], 'mapOneToMany', array('fieldName' => 'packages', 'targetEntity' => $config['class']['package'], 'cascade' => array('persist'), 'mappedBy' => 'product', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapOneToMany', array('fieldName' => 'deliveries', 'targetEntity' => $config['class']['delivery'], 'cascade' => array('persist'), 'mappedBy' => 'product', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapOneToMany', array('fieldName' => 'productCategories', 'targetEntity' => $config['class']['product_category'], 'cascade' => array('persist'), 'mappedBy' => 'product', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapOneToMany', array('fieldName' => 'productCollections', 'targetEntity' => $config['class']['product_collection'], 'cascade' => array('persist'), 'mappedBy' => 'product', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapManyToOne', array('fieldName' => 'image', 'targetEntity' => $config['class']['media'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'image_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapManyToOne', array('fieldName' => 'gallery', 'targetEntity' => $config['class']['gallery'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'gallery_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapManyToOne', array('fieldName' => 'parent', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'variations', 'joinColumns' => array(array('name' => 'parent_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['product'], 'mapOneToMany', array('fieldName' => 'variations', 'targetEntity' => $config['class']['product'], 'cascade' => array('persist'), 'mappedBy' => 'parent', 'orphanRemoval' => false)); $collector->addIndex($config['class']['product'], 'enabled', array('enabled')); }
/** * Registers doctrine mapping on concrete page entities. * * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['gist'], 'mapManyToMany', ['fieldName' => 'tags', 'targetEntity' => $config['class']['tag'], 'cascade' => [], 'joinTable' => ['name' => 'github__gist__tag', 'joinColumns' => [['name' => 'gist_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE']], 'inverseJoinColumns' => [['name' => 'tag_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE']]]]); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['media'], 'mapOneToMany', array('fieldName' => 'galleryHasMedias', 'targetEntity' => $config['class']['gallery_has_media'], 'cascade' => array('persist'), 'mappedBy' => 'media', 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery_has_media'], 'mapManyToOne', array('fieldName' => 'gallery', 'targetEntity' => $config['class']['gallery'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'galleryHasMedias', 'joinColumns' => array(array('name' => 'gallery_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery_has_media'], 'mapManyToOne', array('fieldName' => 'media', 'targetEntity' => $config['class']['media'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'galleryHasMedias', 'joinColumns' => array(array('name' => 'media_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['gallery'], 'mapOneToMany', array('fieldName' => 'galleryHasMedias', 'targetEntity' => $config['class']['gallery_has_media'], 'cascade' => array('persist'), 'mappedBy' => 'gallery', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); if (interface_exists('Sonata\\ClassificationBundle\\Model\\CategoryInterface')) { $collector->addAssociation($config['class']['media'], 'mapManyToOne', array('fieldName' => 'category', 'targetEntity' => $config['class']['category'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'category_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } $collector->addAssociation($config['class']['post'], 'mapOneToMany', array('fieldName' => 'comments', 'targetEntity' => $config['class']['comment'], 'cascade' => array(0 => 'remove', 1 => 'persist'), 'mappedBy' => 'post', 'orphanRemoval' => true, 'orderBy' => array('createdAt' => 'DESC'))); $collector->addAssociation($config['class']['post'], 'mapManyToOne', array('fieldName' => 'image', 'targetEntity' => $config['class']['media'], 'cascade' => array(0 => 'remove', 1 => 'persist', 2 => 'refresh', 3 => 'merge', 4 => 'detach'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'image_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['post'], 'mapManyToOne', array('fieldName' => 'author', 'targetEntity' => $config['class']['user'], 'cascade' => array(1 => 'persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'author_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['post'], 'mapManyToOne', array('fieldName' => 'collection', 'targetEntity' => $config['class']['collection'], 'cascade' => array(1 => 'persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'collection_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['post'], 'mapManyToMany', array('fieldName' => 'tags', 'targetEntity' => $config['class']['tag'], 'cascade' => array(1 => 'persist'), 'joinTable' => array('name' => 'news__post_tag', 'joinColumns' => array(array('name' => 'post_id', 'referencedColumnName' => 'id')), 'inverseJoinColumns' => array(array('name' => 'tag_id', 'referencedColumnName' => 'id'))))); $collector->addAssociation($config['class']['comment'], 'mapManyToOne', array('fieldName' => 'post', 'targetEntity' => $config['class']['post'], 'cascade' => array(), 'mappedBy' => null, 'inversedBy' => 'comments', 'joinColumns' => array(array('name' => 'post_id', 'referencedColumnName' => 'id', 'nullable' => false)), 'orphanRemoval' => false)); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addIndex($config['class']['message'], 'idx_state', array('state')); $collector->addIndex($config['class']['message'], 'idx_created_at', array('created_at')); }
/** * Registers doctrine mapping on concrete page entities. * * @param array $config */ public function registerDoctrineMapping(array $config) { $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['transaction'], 'mapManyToOne', array('fieldName' => 'category', 'targetEntity' => $config['class']['category'], 'cascade' => array('persist'), 'joinColumns' => array(array('name' => 'category_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['timeline'], 'mapManyToOne', array('fieldName' => 'action', 'targetEntity' => $config['class']['action'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => 'timelines', 'joinColumns' => array(array('name' => 'action_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['timeline'], 'mapManyToOne', array('fieldName' => 'subject', 'targetEntity' => $config['class']['component'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => NULL, 'joinColumns' => array(array('name' => 'subject_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['action'], 'mapOneToMany', array('fieldName' => 'actionComponents', 'targetEntity' => $config['class']['actionComponent'], 'cascade' => array(1 => 'persist'), 'mappedBy' => 'action')); $collector->addAssociation($config['class']['action'], 'mapOneToMany', array('fieldName' => 'timelines', 'targetEntity' => $config['class']['timeline'], 'cascade' => array(), 'mappedBy' => 'action')); $collector->addAssociation($config['class']['actionComponent'], 'mapManyToOne', array('fieldName' => 'action', 'targetEntity' => $config['class']['action'], 'cascade' => array(), 'mappedBy' => NULL, 'inversedBy' => 'actionComponents', 'joinColumns' => array(array('name' => 'action_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['actionComponent'], 'mapManyToOne', array('fieldName' => 'component', 'targetEntity' => $config['class']['component'], 'cascade' => array(), 'mappedBy' => NULL, 'joinColumns' => array(array('name' => 'component_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); }
/** * @param array $config A configuration array * @param ContainerBuilder $container Symfony container builder * @param string $modelType Configuration model type */ public function registerSonataUserDoctrineMapping(array $config, ContainerBuilder $container, $modelType) { foreach ($config['class'] as $class) { if (!class_exists($class)) { return; } } $collector = DoctrineCollector::getInstance(); $userClass = $container->getParameter(sprintf('sonata.user.admin.user.%s', $modelType)); $collector->addAssociation($config['class']['comment'], 'mapManyToOne', array('fieldName' => 'author', 'targetEntity' => $userClass, 'cascade' => array())); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { foreach ($config['class'] as $type => $class) { if (!class_exists($class)) { return; } } $collector = DoctrineCollector::getInstance(); # Access Token $collector->addAssociation($config['class']['access_token'], 'mapManyToOne', array('fieldName' => 'client', 'targetEntity' => $config['class']['client'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'client_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['access_token'], 'mapManyToOne', array('fieldName' => 'user', 'targetEntity' => $config['class']['user'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); #Auth Code $collector->addAssociation($config['class']['refresh_token'], 'mapManyToOne', array('fieldName' => 'client', 'targetEntity' => $config['class']['client'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'client_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['refresh_token'], 'mapManyToOne', array('fieldName' => 'user', 'targetEntity' => $config['class']['user'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); #Auth Code $collector->addAssociation($config['class']['auth_code'], 'mapManyToOne', array('fieldName' => 'client', 'targetEntity' => $config['class']['client'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'client_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['auth_code'], 'mapManyToOne', array('fieldName' => 'user', 'targetEntity' => $config['class']['user'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => 'accessToken', 'joinColumns' => array(array('name' => 'user_id', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); }
/** * @param array $config */ public function registerDoctrineMapping(array $config) { foreach ($config['class'] as $type => $class) { if ('media' !== $type && !class_exists($class)) { return; } } $collector = DoctrineCollector::getInstance(); $collector->addAssociation($config['class']['category'], 'mapOneToMany', array('fieldName' => 'children', 'targetEntity' => $config['class']['category'], 'cascade' => array('persist'), 'mappedBy' => 'parent', 'orphanRemoval' => true, 'orderBy' => array('position' => 'ASC'))); $collector->addAssociation($config['class']['category'], 'mapManyToOne', array('fieldName' => 'parent', 'targetEntity' => $config['class']['category'], 'cascade' => array('persist', 'refresh', 'merge', 'detach'), 'mappedBy' => null, 'inversedBy' => 'children', 'joinColumns' => array(array('name' => 'parent_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['category'], 'mapManyToOne', array('fieldName' => 'context', 'targetEntity' => $config['class']['context'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'context', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['tag'], 'mapManyToOne', array('fieldName' => 'context', 'targetEntity' => $config['class']['context'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'context', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addUnique($config['class']['tag'], 'tag_context', array('slug', 'context')); $collector->addAssociation($config['class']['collection'], 'mapManyToOne', array('fieldName' => 'context', 'targetEntity' => $config['class']['context'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'context', 'referencedColumnName' => 'id')), 'orphanRemoval' => false)); $collector->addUnique($config['class']['collection'], 'tag_collection', array('slug', 'context')); if (interface_exists('Sonata\\MediaBundle\\Model\\MediaInterface')) { $collector->addAssociation($config['class']['collection'], 'mapManyToOne', array('fieldName' => 'media', 'targetEntity' => $config['class']['media'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'media_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); $collector->addAssociation($config['class']['category'], 'mapManyToOne', array('fieldName' => 'media', 'targetEntity' => $config['class']['media'], 'cascade' => array('persist'), 'mappedBy' => null, 'inversedBy' => null, 'joinColumns' => array(array('name' => 'media_id', 'referencedColumnName' => 'id', 'onDelete' => 'SET NULL')), 'orphanRemoval' => false)); } }