Sonata\ProductBundle\DependencyInjection\SonataProductExtension::registerDoctrineMapping PHP Метод

registerDoctrineMapping() публичный Метод

public registerDoctrineMapping ( array $config )
$config array
    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'));
    }