Skip to content

Commit

Permalink
Merge pull request doctrine#150 from stof/initialize_object
Browse files Browse the repository at this point in the history
Added the initializeObject method in the EntityManager
  • Loading branch information
beberlei committed Oct 16, 2011
2 parents fc73845 + a8e6131 commit ba5e732
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions lib/Doctrine/ORM/EntityManager.php
Expand Up @@ -128,7 +128,7 @@ protected function __construct(Connection $conn, Configuration $config, EventMan
$this->metadataFactory = new $metadataFactoryClassName;
$this->metadataFactory->setEntityManager($this);
$this->metadataFactory->setCacheDriver($this->config->getMetadataCacheImpl());

$this->unitOfWork = new UnitOfWork($this);
$this->proxyFactory = new ProxyFactory($this,
$config->getProxyDir(),
Expand Down Expand Up @@ -203,18 +203,18 @@ public function beginTransaction()
public function transactional(Closure $func)
{
$this->conn->beginTransaction();

try {
$return = $func($this);

$this->flush();
$this->conn->commit();

return $return ?: true;
} catch (Exception $e) {
$this->close();
$this->conn->rollback();

throw $e;
}
}
Expand Down Expand Up @@ -244,7 +244,7 @@ public function rollback()
*
* The class name must be the fully-qualified class name without a leading backslash
* (as it is returned by get_class($obj)) or an aliased class name.
*
*
* Examples:
* MyProject\Domain\User
* sales:PriceRequest
Expand Down Expand Up @@ -450,7 +450,7 @@ public function close()
*
* The entity will be entered into the database at or before transaction
* commit or as a result of the flush operation.
*
*
* NOTE: The persist operation always considers entities that are not yet known to
* this EntityManager as NEW. Do not pass detached entities to the persist operation.
*
Expand Down Expand Up @@ -633,7 +633,7 @@ private function errorIfClosed()

/**
* Check if the Entity manager is open or closed.
*
*
* @return bool
*/
public function isOpen()
Expand Down Expand Up @@ -714,6 +714,18 @@ public function getProxyFactory()
return $this->proxyFactory;
}

/**
* Helper method to initialize a lazy loading proxy or persistent collection.
*
* This method is a no-op for other objects
*
* @param object $obj
*/
public function initializeObject($obj)
{
$this->unitOfWork->initializeObject($obj);
}

/**
* Factory method to create EntityManager instances.
*
Expand Down

0 comments on commit ba5e732

Please sign in to comment.