cygnus/doctrine-magic-embed-bundle

This package is abandoned and no longer maintained. No replacement package was suggested.

A Symfony2 bundle to support embedding a version of a first-class managed document

dev-master 2014-02-27 03:16 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:18:56 UTC


README

This bundle supports embedding a version of a first-class managed document in Doctrine documents.

Build Status

The Problem

In Doctrine, managed documents cannot be easily embedded within other documents. In a blogging scenario, it would be useful to embed the post author on each Post document, both to prevent unnecessary database lookups and to easily access methods or properties of the author, once hydrated.

In Doctrine, you would need to either reference the Author document (causing a DB query), or embed an EmbeddedDocument version of the Author document (to which changes would not be persisted.) You may also want to specify what fields of the embedded document are actually embedded, which is not currently supported.

The Solution

This bundle attempts to remedy that problem by providing three things:

  1. An annotation driver to define which fields should be used when embedding a document.
  2. A service that hooks into Doctrine's hydration and persistance events to transform the passed document into a true embedded document based on the fields you have defined with the annotation driver.
  3. Finally, a service that hooks into Doctrine's persistance functionality to cascade changes from managed documents to transformed embedded documents.

Status

This bundle is currently under active development, and no stable release is yet available. If you're interested in learning more or contributing, feel free to check out the documentation or the wiki.