1
0
Fork 0
mirror of synced 2025-04-02 04:46:16 +03:00
Doctrine 2 Object Relational Mapper (ORM)
Find a file
Mathieu De Zutter ec35d4886c Don't load detached proxies when merging them.
Ticket DDC-1392 fixed an issue where uninitialized proxies could not be merged
because the merge routine couldn't get the identifier from them. The soution
was to initialize the proxy.
Ticket DDC-1734 fixed the merging of *unserialized* uninitialized proxies by
resetting their internals, so these proxies were able to initialize, as required
by the fix for DDC-1392.

Somehow, in the meanwhile, the fix for DDC-1392 is not needed anymore:
reverting the patch will not break the associated test (but it does break the
test for DDC-1734). This means it is not needed anymore to initialize the proxy
when merging.

Uninitialized proxies that get merged should not be loaded at all.  Since they
are not initialized, the entity data for sure hasn't changed, so it can be
safely ignored. Actually, the only thing the data is needed for while merging,
is to copy it into the managed entity, but that one is already supposed to be
up to date. By not initializing the proxy, a potential database roundtrip is
saved, and the fix for DDC-1734 is not needed anymore.

Besides optimizing the merge, this patch also solves an issue with merging.
Currently, when a detached uninitialized proxy is merged while there is already a
corresponding managed entity (proxy or not), the ORM returns a blank entity
instead of returning the already managed entity. This patch makes sure that
already existing managed entities are re-used.
2015-01-16 20:54:15 +01:00
bin Fix the composer autoload paths for the doctrine CLT 2014-07-24 09:52:55 -04:00
docs Merge pull request #1255 from Ocramius/cleanup/php-5.3-support-end 2015-01-15 01:29:00 +01:00
lib Don't load detached proxies when merging them. 2015-01-16 20:54:15 +01:00
tests Don't load detached proxies when merging them. 2015-01-16 20:54:15 +01:00
tools/sandbox Region cache clear commands 2013-12-16 11:05:05 -05:00
.coveralls.yml Simplify build matrix 2014-03-01 17:13:28 -05:00
.gitattributes Remove README.markdown from .gitattributes 2013-01-19 20:04:43 +01:00
.gitignore Added composer.lock to .gitignore 2013-03-07 14:12:10 +01:00
.gitmodules Removing submodules as of doctrine/doctrine2#570 2013-02-15 18:33:29 +01:00
.travis.yml Merge pull request #1255 from Ocramius/cleanup/php-5.3-support-end 2015-01-15 01:29:00 +01:00
build.properties New Build process 2013-09-07 12:56:49 +02:00
build.properties.dev Add support to distribute the XSD to a given directory during build process 2011-08-27 13:23:17 +02:00
build.xml New Build process 2013-09-07 12:56:49 +02:00
composer.json Requiring PHP 5.4 as a minimum runtime 2015-01-14 20:02:48 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2013-12-14 11:29:07 +01:00
doctrine-mapping.xsd Adding use-column-prefix attribute as proposed (DDC-3293) #1239 2015-01-08 00:09:30 -02:00
LICENSE LGPL => MIT 2012-05-26 14:37:00 +02:00
phpunit.xml.dist Fixed typos 2013-03-11 00:08:58 +00:00
README.markdown Updating readme minimum required PHP version 2015-01-14 21:00:37 +01:00
run-all.sh Fixed typos 2013-03-11 00:08:58 +00:00
SECURITY.md Add SECURITY.md and a chapter on security assumptions in Doctrine ORM. 2014-02-21 16:12:32 +01:00
UPGRADE.md Removing Doctrine\ORM\Id\AbstractIdGenerator#generate(EntityManagerInterface $em, $entity) from upgrade notes (BC break reverted) 2015-01-16 18:53:27 +01:00

Master 2.4 2.3 2.2 2.1
Build status Build status Build status Build status Build status
Coverage Status

Doctrine 2 is an object-relational mapper (ORM) for PHP 5.4+ that provides transparent persistence for PHP objects. It sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication.

More resources: