Skip to content
Bundle which provides annotations for interlinking entities with documents and vice versa
PHP
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
DependencyInjection
Listener
Mapping
Resources/config
LICENSE
NetvliesDoctrineBridgeBundle.php
README.md
composer.json

README.md

Netvlies DoctrineBridge

This bundle provides a bridge functionality between different doctrine managers. The bridge functionality makes it possible to make interlinked relations between an entity and a document (and vice versa) using annotations. An example for a document:

use Netvlies\Bundle\DoctrineBridgeBundle\Mapping\Annotations as BRIDGE;

/**
 *
 * @PHPCRODM\Document(referenceable=true)
 */
class MyPage
{
     * @PHPCRODM\String
     * @BRIDGE\Entity(targetEntity="MyBundle:Media", entityManager="default")
     */
    protected $media;

And vice versa

use Netvlies\Bundle\DoctrineBridgeBundle\Mapping\Annotations as BRIDGE;

/**
 * @ORM\Table()
 * @ORM\Entity
 */
class OrderLine
{
     * @ORM\Column(name="product", type="string", length=255)
     * @BRIDGE\Document(targetDocument="MyBundle:Product", documentManager="default")
     */
    private $product;

Using this annotation, it will load a reference object when retrieved, and will be resolved from storage engine when asked for. Also when assigned and saved it will store the UID from the other side, so it can be resolved when retrieved again.

TODO

  • There are no tests yet. The bundle is quite simple now, but with further development tests should be added and checked in Travis
  • Currently it only supports x-to-one relations. So this is must be added later on to have at least support for one-to-many relations.
  • Currently it has only support ORM and PHPCR. So support for mongoDB and/or other storage engines might be added in the future.

Installation

You can either use composer or include it into your deps file. For composer:

"netvlies/doctrinebridgebundle": "dev-master",

Deps file

[doctrineBridgeBundle]
git=http://github.com/netvlies/DoctrineBridgeBundle.git

After that you need to add following line to your autoload.php and change the path accordingly (if needed)

AnnotationRegistry::registerFile(__DIR__.'/../vendor/netvlies/doctrinebridge/Netvlies/Bundle/DoctrineBridgeBundle/Mapping/Annotations/DoctrineAnnotations.php');

And dont't forget it to include into your AppKernel.php

new Netvlies\Bundle\DoctrineBridgeBundle\NetvliesDoctrineBridgeBundle(),
Something went wrong with that request. Please try again.