Fixed many small phpcs issues
This commit is contained in:
parent
3971e8c55b
commit
6dcb97a20e
@ -178,7 +178,6 @@ abstract class AbstractQuery
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Enable/disable second level query (result) caching for this query.
|
* Enable/disable second level query (result) caching for this query.
|
||||||
*
|
*
|
||||||
* @param boolean $cacheable
|
* @param boolean $cacheable
|
||||||
@ -243,7 +242,7 @@ abstract class AbstractQuery
|
|||||||
*
|
*
|
||||||
* @param integer $lifetime
|
* @param integer $lifetime
|
||||||
*
|
*
|
||||||
* @return static This query instance.
|
* @return \Doctrine\ORM\AbstractQuery This query instance.
|
||||||
*/
|
*/
|
||||||
public function setLifetime($lifetime)
|
public function setLifetime($lifetime)
|
||||||
{
|
{
|
||||||
@ -263,7 +262,7 @@ abstract class AbstractQuery
|
|||||||
/**
|
/**
|
||||||
* @param integer $cacheMode
|
* @param integer $cacheMode
|
||||||
*
|
*
|
||||||
* @return static This query instance.
|
* @return \Doctrine\ORM\AbstractQuery This query instance.
|
||||||
*/
|
*/
|
||||||
public function setCacheMode($cacheMode)
|
public function setCacheMode($cacheMode)
|
||||||
{
|
{
|
||||||
@ -863,7 +862,7 @@ abstract class AbstractQuery
|
|||||||
/**
|
/**
|
||||||
* Check if the query has a hint
|
* Check if the query has a hint
|
||||||
*
|
*
|
||||||
* @param string $name The name of the hint
|
* @param string $name The name of the hint
|
||||||
*
|
*
|
||||||
* @return bool False if the query does not have any hint
|
* @return bool False if the query does not have any hint
|
||||||
*/
|
*/
|
||||||
|
@ -43,8 +43,8 @@ class AssociationCacheEntry implements CacheEntry
|
|||||||
public $class;
|
public $class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $class The entity class.
|
* @param string $class The entity class.
|
||||||
* @param array $identifier The entity identifier.
|
* @param array $identifier The entity identifier.
|
||||||
*/
|
*/
|
||||||
public function __construct($class, array $identifier)
|
public function __construct($class, array $identifier)
|
||||||
{
|
{
|
||||||
@ -58,6 +58,8 @@ class AssociationCacheEntry implements CacheEntry
|
|||||||
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
||||||
*
|
*
|
||||||
* @param array $values array containing property values
|
* @param array $values array containing property values
|
||||||
|
*
|
||||||
|
* @return AssociationCacheEntry
|
||||||
*/
|
*/
|
||||||
public static function __set_state(array $values)
|
public static function __set_state(array $values)
|
||||||
{
|
{
|
||||||
|
@ -62,8 +62,9 @@ class CacheException extends ORMException
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $entityName
|
* @param string $entityName
|
||||||
|
* @param string $field
|
||||||
*
|
*
|
||||||
* @return \Doctrine\ORM\Cache\CacheException
|
* @return CacheException
|
||||||
*/
|
*/
|
||||||
public static function nonCacheableEntityAssociation($entityName, $field)
|
public static function nonCacheableEntityAssociation($entityName, $field)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +50,7 @@ class CollectionCacheEntry implements CacheEntry
|
|||||||
*
|
*
|
||||||
* @param array $values array containing property values
|
* @param array $values array containing property values
|
||||||
*
|
*
|
||||||
* @return self
|
* @return CollectionCacheEntry
|
||||||
*/
|
*/
|
||||||
public static function __set_state(array $values)
|
public static function __set_state(array $values)
|
||||||
{
|
{
|
||||||
|
@ -60,6 +60,8 @@ class EntityCacheEntry implements CacheEntry
|
|||||||
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
||||||
*
|
*
|
||||||
* @param array $values array containing property values
|
* @param array $values array containing property values
|
||||||
|
*
|
||||||
|
* @return EntityCacheEntry
|
||||||
*/
|
*/
|
||||||
public static function __set_state(array $values)
|
public static function __set_state(array $values)
|
||||||
{
|
{
|
||||||
|
@ -282,9 +282,9 @@ abstract class AbstractEntityPersister implements CachedEntityPersister
|
|||||||
/**
|
/**
|
||||||
* Generates a string of currently query
|
* Generates a string of currently query
|
||||||
*
|
*
|
||||||
* @param array $query
|
* @param array $query
|
||||||
* @param string $criteria
|
* @param string $criteria
|
||||||
* @param array $orderBy
|
* @param array $orderBy
|
||||||
* @param integer $limit
|
* @param integer $limit
|
||||||
* @param integer $offset
|
* @param integer $offset
|
||||||
* @param integer $timestamp
|
* @param integer $timestamp
|
||||||
|
@ -38,8 +38,9 @@ interface CachedEntityPersister extends CachedPersister, EntityPersister
|
|||||||
public function getEntityHydrator();
|
public function getEntityHydrator();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param object $entity
|
* @param object $entity
|
||||||
* @param \Doctrine\ORM\Cache\EntityCacheKey $key
|
* @param \Doctrine\ORM\Cache\EntityCacheKey $key
|
||||||
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function storeEntityCache($entity, EntityCacheKey $key);
|
public function storeEntityCache($entity, EntityCacheKey $key);
|
||||||
|
@ -43,7 +43,7 @@ class QueryCacheEntry implements CacheEntry
|
|||||||
public $time;
|
public $time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $result
|
* @param array $result
|
||||||
* @param integer $time
|
* @param integer $time
|
||||||
*/
|
*/
|
||||||
public function __construct($result, $time = null)
|
public function __construct($result, $time = null)
|
||||||
@ -54,6 +54,8 @@ class QueryCacheEntry implements CacheEntry
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $values
|
* @param array $values
|
||||||
|
*
|
||||||
|
* @return QueryCacheEntry
|
||||||
*/
|
*/
|
||||||
public static function __set_state(array $values)
|
public static function __set_state(array $values)
|
||||||
{
|
{
|
||||||
|
@ -114,7 +114,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
/**
|
/**
|
||||||
* @param \Doctrine\ORM\Cache\CacheKey $key
|
* @param \Doctrine\ORM\Cache\CacheKey $key
|
||||||
*
|
*
|
||||||
* return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function getLockFileName(CacheKey $key)
|
private function getLockFileName(CacheKey $key)
|
||||||
{
|
{
|
||||||
@ -124,7 +124,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
/**
|
/**
|
||||||
* @param string $filename
|
* @param string $filename
|
||||||
*
|
*
|
||||||
* return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function getLockContent($filename)
|
private function getLockContent($filename)
|
||||||
{
|
{
|
||||||
@ -134,7 +134,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
/**
|
/**
|
||||||
* @param string $filename
|
* @param string $filename
|
||||||
*
|
*
|
||||||
* return integer
|
* @return integer
|
||||||
*/
|
*/
|
||||||
private function getLockTime($filename)
|
private function getLockTime($filename)
|
||||||
{
|
{
|
||||||
@ -142,7 +142,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getName()
|
public function getName()
|
||||||
{
|
{
|
||||||
@ -150,7 +150,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function contains(CacheKey $key)
|
public function contains(CacheKey $key)
|
||||||
{
|
{
|
||||||
@ -162,7 +162,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function get(CacheKey $key)
|
public function get(CacheKey $key)
|
||||||
{
|
{
|
||||||
@ -186,7 +186,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function put(CacheKey $key, CacheEntry $entry, Lock $lock = null)
|
public function put(CacheKey $key, CacheEntry $entry, Lock $lock = null)
|
||||||
{
|
{
|
||||||
@ -198,7 +198,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function evict(CacheKey $key)
|
public function evict(CacheKey $key)
|
||||||
{
|
{
|
||||||
@ -210,7 +210,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function evictAll()
|
public function evictAll()
|
||||||
{
|
{
|
||||||
@ -228,7 +228,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function lock(CacheKey $key)
|
public function lock(CacheKey $key)
|
||||||
{
|
{
|
||||||
@ -248,7 +248,7 @@ class FileLockRegion implements ConcurrentRegion
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function unlock(CacheKey $key, Lock $lock)
|
public function unlock(CacheKey $key, Lock $lock)
|
||||||
{
|
{
|
||||||
|
@ -40,7 +40,7 @@ class TimestampCacheEntry implements CacheEntry
|
|||||||
*/
|
*/
|
||||||
public function __construct($time = null)
|
public function __construct($time = null)
|
||||||
{
|
{
|
||||||
$this->time = $time ? (float)$time : microtime(true);
|
$this->time = $time ? (float) $time : microtime(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,6 +49,8 @@ class TimestampCacheEntry implements CacheEntry
|
|||||||
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
* This method allow Doctrine\Common\Cache\PhpFileCache compatibility
|
||||||
*
|
*
|
||||||
* @param array $values array containing property values
|
* @param array $values array containing property values
|
||||||
|
*
|
||||||
|
* @return TimestampCacheEntry
|
||||||
*/
|
*/
|
||||||
public static function __set_state(array $values)
|
public static function __set_state(array $values)
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,7 @@ class Configuration extends \Doctrine\DBAL\Configuration
|
|||||||
*/
|
*/
|
||||||
public function setAutoGenerateProxyClasses($autoGenerate)
|
public function setAutoGenerateProxyClasses($autoGenerate)
|
||||||
{
|
{
|
||||||
$this->_attributes['autoGenerateProxyClasses'] = (int)$autoGenerate;
|
$this->_attributes['autoGenerateProxyClasses'] = (int) $autoGenerate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -571,7 +571,7 @@ use Doctrine\Common\Util\ClassUtils;
|
|||||||
public function persist($entity)
|
public function persist($entity)
|
||||||
{
|
{
|
||||||
if ( ! is_object($entity)) {
|
if ( ! is_object($entity)) {
|
||||||
throw ORMInvalidArgumentException::invalidObject('EntityManager#persist()' , $entity);
|
throw ORMInvalidArgumentException::invalidObject('EntityManager#persist()', $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errorIfClosed();
|
$this->errorIfClosed();
|
||||||
@ -594,7 +594,7 @@ use Doctrine\Common\Util\ClassUtils;
|
|||||||
public function remove($entity)
|
public function remove($entity)
|
||||||
{
|
{
|
||||||
if ( ! is_object($entity)) {
|
if ( ! is_object($entity)) {
|
||||||
throw ORMInvalidArgumentException::invalidObject('EntityManager#remove()' , $entity);
|
throw ORMInvalidArgumentException::invalidObject('EntityManager#remove()', $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errorIfClosed();
|
$this->errorIfClosed();
|
||||||
@ -615,7 +615,7 @@ use Doctrine\Common\Util\ClassUtils;
|
|||||||
public function refresh($entity)
|
public function refresh($entity)
|
||||||
{
|
{
|
||||||
if ( ! is_object($entity)) {
|
if ( ! is_object($entity)) {
|
||||||
throw ORMInvalidArgumentException::invalidObject('EntityManager#refresh()' , $entity);
|
throw ORMInvalidArgumentException::invalidObject('EntityManager#refresh()', $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errorIfClosed();
|
$this->errorIfClosed();
|
||||||
@ -639,7 +639,7 @@ use Doctrine\Common\Util\ClassUtils;
|
|||||||
public function detach($entity)
|
public function detach($entity)
|
||||||
{
|
{
|
||||||
if ( ! is_object($entity)) {
|
if ( ! is_object($entity)) {
|
||||||
throw ORMInvalidArgumentException::invalidObject('EntityManager#detach()' , $entity);
|
throw ORMInvalidArgumentException::invalidObject('EntityManager#detach()', $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->unitOfWork->detach($entity);
|
$this->unitOfWork->detach($entity);
|
||||||
@ -659,7 +659,7 @@ use Doctrine\Common\Util\ClassUtils;
|
|||||||
public function merge($entity)
|
public function merge($entity)
|
||||||
{
|
{
|
||||||
if ( ! is_object($entity)) {
|
if ( ! is_object($entity)) {
|
||||||
throw ORMInvalidArgumentException::invalidObject('EntityManager#merge()' , $entity);
|
throw ORMInvalidArgumentException::invalidObject('EntityManager#merge()', $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errorIfClosed();
|
$this->errorIfClosed();
|
||||||
|
@ -185,7 +185,7 @@ class EntityRepository implements ObjectRepository, Selectable
|
|||||||
/**
|
/**
|
||||||
* Finds a single entity by a set of criteria.
|
* Finds a single entity by a set of criteria.
|
||||||
*
|
*
|
||||||
* @param array $criteria
|
* @param array $criteria
|
||||||
* @param array|null $orderBy
|
* @param array|null $orderBy
|
||||||
*
|
*
|
||||||
* @return object|null The entity instance or NULL if the entity can not be found.
|
* @return object|null The entity instance or NULL if the entity can not be found.
|
||||||
|
@ -62,8 +62,8 @@ class ListenersInvoker
|
|||||||
/**
|
/**
|
||||||
* Get the subscribed event systems
|
* Get the subscribed event systems
|
||||||
*
|
*
|
||||||
* @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The entity metadata.
|
* @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The entity metadata.
|
||||||
* @param string $eventName The entity lifecycle event.
|
* @param string $eventName The entity lifecycle event.
|
||||||
*
|
*
|
||||||
* @return integer Bitmask of subscribed event systems.
|
* @return integer Bitmask of subscribed event systems.
|
||||||
*/
|
*/
|
||||||
@ -89,21 +89,21 @@ class ListenersInvoker
|
|||||||
/**
|
/**
|
||||||
* Dispatches the lifecycle event of the given entity.
|
* Dispatches the lifecycle event of the given entity.
|
||||||
*
|
*
|
||||||
* @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The entity metadata.
|
* @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The entity metadata.
|
||||||
* @param string $eventName The entity lifecycle event.
|
* @param string $eventName The entity lifecycle event.
|
||||||
* @param object $entity The Entity on which the event occurred.
|
* @param object $entity The Entity on which the event occurred.
|
||||||
* @param \Doctrine\Common\EventArgs $event The Event args.
|
* @param \Doctrine\Common\EventArgs $event The Event args.
|
||||||
* @param integer $invoke Bitmask to invoke listeners.
|
* @param integer $invoke Bitmask to invoke listeners.
|
||||||
*/
|
*/
|
||||||
public function invoke(ClassMetadata $metadata, $eventName, $entity, EventArgs $event, $invoke)
|
public function invoke(ClassMetadata $metadata, $eventName, $entity, EventArgs $event, $invoke)
|
||||||
{
|
{
|
||||||
if($invoke & self::INVOKE_CALLBACKS) {
|
if ($invoke & self::INVOKE_CALLBACKS) {
|
||||||
foreach ($metadata->lifecycleCallbacks[$eventName] as $callback) {
|
foreach ($metadata->lifecycleCallbacks[$eventName] as $callback) {
|
||||||
$entity->$callback($event);
|
$entity->$callback($event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($invoke & self::INVOKE_LISTENERS) {
|
if ($invoke & self::INVOKE_LISTENERS) {
|
||||||
foreach ($metadata->entityListeners[$eventName] as $listener) {
|
foreach ($metadata->entityListeners[$eventName] as $listener) {
|
||||||
$class = $listener['class'];
|
$class = $listener['class'];
|
||||||
$method = $listener['method'];
|
$method = $listener['method'];
|
||||||
@ -113,8 +113,8 @@ class ListenersInvoker
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($invoke & self::INVOKE_MANAGER) {
|
if ($invoke & self::INVOKE_MANAGER) {
|
||||||
$this->eventManager->dispatchEvent($eventName, $event);
|
$this->eventManager->dispatchEvent($eventName, $event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ class IdentityGenerator extends AbstractIdGenerator
|
|||||||
*/
|
*/
|
||||||
public function generate(EntityManager $em, $entity)
|
public function generate(EntityManager $em, $entity)
|
||||||
{
|
{
|
||||||
return (int)$em->getConnection()->lastInsertId($this->sequenceName);
|
return (int) $em->getConnection()->lastInsertId($this->sequenceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +76,7 @@ class SequenceGenerator extends AbstractIdGenerator implements Serializable
|
|||||||
$conn = $em->getConnection();
|
$conn = $em->getConnection();
|
||||||
$sql = $conn->getDatabasePlatform()->getSequenceNextValSQL($this->_sequenceName);
|
$sql = $conn->getDatabasePlatform()->getSequenceNextValSQL($this->_sequenceName);
|
||||||
|
|
||||||
$this->_nextValue = (int)$conn->fetchColumn($sql);
|
$this->_nextValue = (int) $conn->fetchColumn($sql);
|
||||||
$this->_maxValue = $this->_nextValue + $this->_allocationSize;
|
$this->_maxValue = $this->_nextValue + $this->_allocationSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ class UuidGenerator extends AbstractIdGenerator
|
|||||||
{
|
{
|
||||||
$conn = $em->getConnection();
|
$conn = $em->getConnection();
|
||||||
$sql = 'SELECT ' . $conn->getDatabasePlatform()->getGuidExpression();
|
$sql = 'SELECT ' . $conn->getDatabasePlatform()->getGuidExpression();
|
||||||
|
|
||||||
return $conn->query($sql)->fetchColumn(0);
|
return $conn->query($sql)->fetchColumn(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ class HydrationException extends \Doctrine\ORM\ORMException
|
|||||||
public static function parentObjectOfRelationNotFound($alias, $parentAlias)
|
public static function parentObjectOfRelationNotFound($alias, $parentAlias)
|
||||||
{
|
{
|
||||||
return new self("The parent object of entity result with alias '$alias' was not found."
|
return new self("The parent object of entity result with alias '$alias' was not found."
|
||||||
. " The parent alias is '$parentAlias'.");
|
. " The parent alias is '$parentAlias'.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -88,7 +88,7 @@ class HydrationException extends \Doctrine\ORM\ORMException
|
|||||||
$discrColumnName, $entityName, $dqlAlias
|
$discrColumnName, $entityName, $dqlAlias
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $discrValue
|
* @param string $discrValue
|
||||||
* @param array $discrMap
|
* @param array $discrMap
|
||||||
|
@ -80,6 +80,7 @@ class IterableResult implements \Iterator
|
|||||||
{
|
{
|
||||||
$this->_current = $this->_hydrator->hydrateRow();
|
$this->_current = $this->_hydrator->hydrateRow();
|
||||||
$this->_key++;
|
$this->_key++;
|
||||||
|
|
||||||
return $this->_current;
|
return $this->_current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,8 @@ class LazyCriteriaCollection extends AbstractLazyCollection implements Selectabl
|
|||||||
/**
|
/**
|
||||||
* Do an optimized search of an element
|
* Do an optimized search of an element
|
||||||
*
|
*
|
||||||
* @param object $element
|
* @param object $element
|
||||||
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function contains($element)
|
public function contains($element)
|
||||||
|
@ -63,6 +63,7 @@ class AssociationBuilder
|
|||||||
public function mappedBy($fieldName)
|
public function mappedBy($fieldName)
|
||||||
{
|
{
|
||||||
$this->mapping['mappedBy'] = $fieldName;
|
$this->mapping['mappedBy'] = $fieldName;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,6 +75,7 @@ class AssociationBuilder
|
|||||||
public function inversedBy($fieldName)
|
public function inversedBy($fieldName)
|
||||||
{
|
{
|
||||||
$this->mapping['inversedBy'] = $fieldName;
|
$this->mapping['inversedBy'] = $fieldName;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,6 +85,7 @@ class AssociationBuilder
|
|||||||
public function cascadeAll()
|
public function cascadeAll()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'] = array("ALL");
|
$this->mapping['cascade'] = array("ALL");
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,6 +95,7 @@ class AssociationBuilder
|
|||||||
public function cascadePersist()
|
public function cascadePersist()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'][] = "persist";
|
$this->mapping['cascade'][] = "persist";
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,6 +105,7 @@ class AssociationBuilder
|
|||||||
public function cascadeRemove()
|
public function cascadeRemove()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'][] = "remove";
|
$this->mapping['cascade'][] = "remove";
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +115,7 @@ class AssociationBuilder
|
|||||||
public function cascadeMerge()
|
public function cascadeMerge()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'][] = "merge";
|
$this->mapping['cascade'][] = "merge";
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,6 +125,7 @@ class AssociationBuilder
|
|||||||
public function cascadeDetach()
|
public function cascadeDetach()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'][] = "detach";
|
$this->mapping['cascade'][] = "detach";
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,6 +135,7 @@ class AssociationBuilder
|
|||||||
public function cascadeRefresh()
|
public function cascadeRefresh()
|
||||||
{
|
{
|
||||||
$this->mapping['cascade'][] = "refresh";
|
$this->mapping['cascade'][] = "refresh";
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,6 +145,7 @@ class AssociationBuilder
|
|||||||
public function fetchExtraLazy()
|
public function fetchExtraLazy()
|
||||||
{
|
{
|
||||||
$this->mapping['fetch'] = ClassMetadata::FETCH_EXTRA_LAZY;
|
$this->mapping['fetch'] = ClassMetadata::FETCH_EXTRA_LAZY;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,6 +155,7 @@ class AssociationBuilder
|
|||||||
public function fetchEager()
|
public function fetchEager()
|
||||||
{
|
{
|
||||||
$this->mapping['fetch'] = ClassMetadata::FETCH_EAGER;
|
$this->mapping['fetch'] = ClassMetadata::FETCH_EAGER;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,6 +165,7 @@ class AssociationBuilder
|
|||||||
public function fetchLazy()
|
public function fetchLazy()
|
||||||
{
|
{
|
||||||
$this->mapping['fetch'] = ClassMetadata::FETCH_LAZY;
|
$this->mapping['fetch'] = ClassMetadata::FETCH_LAZY;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,6 +191,7 @@ class AssociationBuilder
|
|||||||
'onDelete' => $onDelete,
|
'onDelete' => $onDelete,
|
||||||
'columnDefinition' => $columnDef,
|
'columnDefinition' => $columnDef,
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,6 +238,7 @@ class AssociationBuilder
|
|||||||
} else {
|
} else {
|
||||||
throw new \InvalidArgumentException("Type should be a ToOne Association here");
|
throw new \InvalidArgumentException("Type should be a ToOne Association here");
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->builder;
|
return $this->builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,7 @@ class FieldBuilder
|
|||||||
public function length($length)
|
public function length($length)
|
||||||
{
|
{
|
||||||
$this->mapping['length'] = $length;
|
$this->mapping['length'] = $length;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +92,8 @@ class FieldBuilder
|
|||||||
*/
|
*/
|
||||||
public function nullable($flag = true)
|
public function nullable($flag = true)
|
||||||
{
|
{
|
||||||
$this->mapping['nullable'] = (bool)$flag;
|
$this->mapping['nullable'] = (bool) $flag;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +106,8 @@ class FieldBuilder
|
|||||||
*/
|
*/
|
||||||
public function unique($flag = true)
|
public function unique($flag = true)
|
||||||
{
|
{
|
||||||
$this->mapping['unique'] = (bool)$flag;
|
$this->mapping['unique'] = (bool) $flag;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,6 +121,7 @@ class FieldBuilder
|
|||||||
public function columnName($name)
|
public function columnName($name)
|
||||||
{
|
{
|
||||||
$this->mapping['columnName'] = $name;
|
$this->mapping['columnName'] = $name;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,6 +135,7 @@ class FieldBuilder
|
|||||||
public function precision($p)
|
public function precision($p)
|
||||||
{
|
{
|
||||||
$this->mapping['precision'] = $p;
|
$this->mapping['precision'] = $p;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,6 +149,7 @@ class FieldBuilder
|
|||||||
public function scale($s)
|
public function scale($s)
|
||||||
{
|
{
|
||||||
$this->mapping['scale'] = $s;
|
$this->mapping['scale'] = $s;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,6 +172,7 @@ class FieldBuilder
|
|||||||
public function makePrimaryKey()
|
public function makePrimaryKey()
|
||||||
{
|
{
|
||||||
$this->mapping['id'] = true;
|
$this->mapping['id'] = true;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,6 +187,7 @@ class FieldBuilder
|
|||||||
public function option($name, $value)
|
public function option($name, $value)
|
||||||
{
|
{
|
||||||
$this->mapping['options'][$name] = $value;
|
$this->mapping['options'][$name] = $value;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,6 +199,7 @@ class FieldBuilder
|
|||||||
public function generatedValue($strategy = 'AUTO')
|
public function generatedValue($strategy = 'AUTO')
|
||||||
{
|
{
|
||||||
$this->generatedValue = $strategy;
|
$this->generatedValue = $strategy;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,6 +211,7 @@ class FieldBuilder
|
|||||||
public function isVersionField()
|
public function isVersionField()
|
||||||
{
|
{
|
||||||
$this->version = true;
|
$this->version = true;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,6 +231,7 @@ class FieldBuilder
|
|||||||
'allocationSize' => $allocationSize,
|
'allocationSize' => $allocationSize,
|
||||||
'initialValue' => $initialValue,
|
'initialValue' => $initialValue,
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,6 +245,7 @@ class FieldBuilder
|
|||||||
public function columnDefinition($def)
|
public function columnDefinition($def)
|
||||||
{
|
{
|
||||||
$this->mapping['columnDefinition'] = $def;
|
$this->mapping['columnDefinition'] = $def;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,7 +286,7 @@ class FieldBuilder
|
|||||||
if ($this->sequenceDef) {
|
if ($this->sequenceDef) {
|
||||||
$cm->setSequenceGeneratorDefinition($this->sequenceDef);
|
$cm->setSequenceGeneratorDefinition($this->sequenceDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->customIdGenerator) {
|
if ($this->customIdGenerator) {
|
||||||
$cm->setCustomGeneratorDefinition(['class' => $this->customIdGenerator]);
|
$cm->setCustomGeneratorDefinition(['class' => $this->customIdGenerator]);
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,7 @@ class ManyToManyAssociationBuilder extends OneToManyAssociationBuilder
|
|||||||
public function setJoinTable($name)
|
public function setJoinTable($name)
|
||||||
{
|
{
|
||||||
$this->joinTableName = $name;
|
$this->joinTableName = $name;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +73,7 @@ class ManyToManyAssociationBuilder extends OneToManyAssociationBuilder
|
|||||||
'onDelete' => $onDelete,
|
'onDelete' => $onDelete,
|
||||||
'columnDefinition' => $columnDef,
|
'columnDefinition' => $columnDef,
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,6 +95,7 @@ class ManyToManyAssociationBuilder extends OneToManyAssociationBuilder
|
|||||||
}
|
}
|
||||||
$cm = $this->builder->getClassMetadata();
|
$cm = $this->builder->getClassMetadata();
|
||||||
$cm->mapManyToMany($mapping);
|
$cm->mapManyToMany($mapping);
|
||||||
|
|
||||||
return $this->builder;
|
return $this->builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ class OneToManyAssociationBuilder extends AssociationBuilder
|
|||||||
public function setOrderBy(array $fieldNames)
|
public function setOrderBy(array $fieldNames)
|
||||||
{
|
{
|
||||||
$this->mapping['orderBy'] = $fieldNames;
|
$this->mapping['orderBy'] = $fieldNames;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,6 +49,7 @@ class OneToManyAssociationBuilder extends AssociationBuilder
|
|||||||
public function setIndexBy($fieldName)
|
public function setIndexBy($fieldName)
|
||||||
{
|
{
|
||||||
$this->mapping['indexBy'] = $fieldName;
|
$this->mapping['indexBy'] = $fieldName;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,6 +64,7 @@ class OneToManyAssociationBuilder extends AssociationBuilder
|
|||||||
}
|
}
|
||||||
$cm = $this->builder->getClassMetadata();
|
$cm = $this->builder->getClassMetadata();
|
||||||
$cm->mapOneToMany($mapping);
|
$cm->mapOneToMany($mapping);
|
||||||
|
|
||||||
return $this->builder;
|
return $this->builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -386,6 +386,7 @@ class ClassMetadataFactory extends AbstractClassMetadataFactory
|
|||||||
}
|
}
|
||||||
|
|
||||||
$parts = explode("\\", $className);
|
$parts = explode("\\", $className);
|
||||||
|
|
||||||
return strtolower(end($parts));
|
return strtolower(end($parts));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,6 +698,7 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
if ($this->isIdentifierComposite) {
|
if ($this->isIdentifierComposite) {
|
||||||
throw new BadMethodCallException("Class " . $this->name . " has a composite identifier.");
|
throw new BadMethodCallException("Class " . $this->name . " has a composite identifier.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->reflFields[$this->identifier[0]];
|
return $this->reflFields[$this->identifier[0]];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1551,11 +1552,11 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
}
|
}
|
||||||
|
|
||||||
$mapping['cascade'] = $cascades;
|
$mapping['cascade'] = $cascades;
|
||||||
$mapping['isCascadeRemove'] = in_array('remove', $cascades);
|
$mapping['isCascadeRemove'] = in_array('remove', $cascades);
|
||||||
$mapping['isCascadePersist'] = in_array('persist', $cascades);
|
$mapping['isCascadePersist'] = in_array('persist', $cascades);
|
||||||
$mapping['isCascadeRefresh'] = in_array('refresh', $cascades);
|
$mapping['isCascadeRefresh'] = in_array('refresh', $cascades);
|
||||||
$mapping['isCascadeMerge'] = in_array('merge', $cascades);
|
$mapping['isCascadeMerge'] = in_array('merge', $cascades);
|
||||||
$mapping['isCascadeDetach'] = in_array('detach', $cascades);
|
$mapping['isCascadeDetach'] = in_array('detach', $cascades);
|
||||||
|
|
||||||
return $mapping;
|
return $mapping;
|
||||||
}
|
}
|
||||||
@ -3248,6 +3249,7 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $className
|
* @param string|null $className
|
||||||
|
*
|
||||||
* @return string|null null if the input value is null
|
* @return string|null null if the input value is null
|
||||||
*/
|
*/
|
||||||
public function fullyQualifiedClassName($className)
|
public function fullyQualifiedClassName($className)
|
||||||
@ -3268,7 +3270,8 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function getMetadataValue($name) {
|
public function getMetadataValue($name)
|
||||||
|
{
|
||||||
|
|
||||||
if (isset($this->$name)) {
|
if (isset($this->$name)) {
|
||||||
return $this->$name;
|
return $this->$name;
|
||||||
@ -3281,6 +3284,7 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
* Map Embedded Class
|
* Map Embedded Class
|
||||||
*
|
*
|
||||||
* @param array $mapping
|
* @param array $mapping
|
||||||
|
*
|
||||||
* @throws MappingException
|
* @throws MappingException
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@ -3299,7 +3303,7 @@ class ClassMetadataInfo implements ClassMetadata
|
|||||||
/**
|
/**
|
||||||
* Inline the embeddable class
|
* Inline the embeddable class
|
||||||
*
|
*
|
||||||
* @param string $property
|
* @param string $property
|
||||||
* @param ClassMetadataInfo $embeddable
|
* @param ClassMetadataInfo $embeddable
|
||||||
*/
|
*/
|
||||||
public function inlineEmbeddable($property, ClassMetadataInfo $embeddable)
|
public function inlineEmbeddable($property, ClassMetadataInfo $embeddable)
|
||||||
|
@ -23,7 +23,7 @@ namespace Doctrine\ORM\Mapping;
|
|||||||
/**
|
/**
|
||||||
* The default NamingStrategy
|
* The default NamingStrategy
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.3
|
* @since 2.3
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||||
@ -80,15 +80,15 @@ class DefaultNamingStrategy implements NamingStrategy
|
|||||||
public function joinTableName($sourceEntity, $targetEntity, $propertyName = null)
|
public function joinTableName($sourceEntity, $targetEntity, $propertyName = null)
|
||||||
{
|
{
|
||||||
return strtolower($this->classToTableName($sourceEntity) . '_' .
|
return strtolower($this->classToTableName($sourceEntity) . '_' .
|
||||||
$this->classToTableName($targetEntity));
|
$this->classToTableName($targetEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function joinKeyColumnName($entityName, $referencedColumnName = null)
|
public function joinKeyColumnName($entityName, $referencedColumnName = null)
|
||||||
{
|
{
|
||||||
return strtolower($this->classToTableName($entityName) . '_' .
|
return strtolower($this->classToTableName($entityName) . '_' .
|
||||||
($referencedColumnName ?: $this->referenceColumnName()));
|
($referencedColumnName ?: $this->referenceColumnName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -526,8 +526,8 @@ class AnnotationDriver extends AbstractAnnotationDriver
|
|||||||
*/
|
*/
|
||||||
private function getFetchMode($className, $fetchMode)
|
private function getFetchMode($className, $fetchMode)
|
||||||
{
|
{
|
||||||
if( ! defined('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode)) {
|
if ( ! defined('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode)) {
|
||||||
throw MappingException::invalidFetchMode($className, $fetchMode);
|
throw MappingException::invalidFetchMode($className, $fetchMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode);
|
return constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode);
|
||||||
|
@ -248,7 +248,7 @@ class DatabaseDriver implements MappingDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
$metadata->mapManyToMany($associationMapping);
|
$metadata->mapManyToMany($associationMapping);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -319,7 +319,7 @@ class DatabaseDriver implements MappingDriver
|
|||||||
$tableName = $metadata->table['name'];
|
$tableName = $metadata->table['name'];
|
||||||
$indexes = $this->tables[$tableName]->getIndexes();
|
$indexes = $this->tables[$tableName]->getIndexes();
|
||||||
|
|
||||||
foreach($indexes as $index){
|
foreach ($indexes as $index) {
|
||||||
if ($index->isPrimary()) {
|
if ($index->isPrimary()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -506,7 +506,7 @@ class DatabaseDriver implements MappingDriver
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return $table->getPrimaryKey()->getColumns();
|
return $table->getPrimaryKey()->getColumns();
|
||||||
} catch(SchemaException $e) {
|
} catch (SchemaException $e) {
|
||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,6 +550,7 @@ class DatabaseDriver implements MappingDriver
|
|||||||
if ($fk) {
|
if ($fk) {
|
||||||
$columnName = str_replace('_id', '', $columnName);
|
$columnName = str_replace('_id', '', $columnName);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Inflector::camelize($columnName);
|
return Inflector::camelize($columnName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,14 +59,14 @@ class XmlDriver extends FileDriver
|
|||||||
|
|
||||||
if ($xmlRoot->getName() == 'entity') {
|
if ($xmlRoot->getName() == 'entity') {
|
||||||
if (isset($xmlRoot['repository-class'])) {
|
if (isset($xmlRoot['repository-class'])) {
|
||||||
$metadata->setCustomRepositoryClass((string)$xmlRoot['repository-class']);
|
$metadata->setCustomRepositoryClass((string) $xmlRoot['repository-class']);
|
||||||
}
|
}
|
||||||
if (isset($xmlRoot['read-only']) && $this->evaluateBoolean($xmlRoot['read-only'])) {
|
if (isset($xmlRoot['read-only']) && $this->evaluateBoolean($xmlRoot['read-only'])) {
|
||||||
$metadata->markReadOnly();
|
$metadata->markReadOnly();
|
||||||
}
|
}
|
||||||
} else if ($xmlRoot->getName() == 'mapped-superclass') {
|
} else if ($xmlRoot->getName() == 'mapped-superclass') {
|
||||||
$metadata->setCustomRepositoryClass(
|
$metadata->setCustomRepositoryClass(
|
||||||
isset($xmlRoot['repository-class']) ? (string)$xmlRoot['repository-class'] : null
|
isset($xmlRoot['repository-class']) ? (string) $xmlRoot['repository-class'] : null
|
||||||
);
|
);
|
||||||
$metadata->isMappedSuperclass = true;
|
$metadata->isMappedSuperclass = true;
|
||||||
} else if ($xmlRoot->getName() == 'embeddable') {
|
} else if ($xmlRoot->getName() == 'embeddable') {
|
||||||
@ -97,8 +97,8 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'named-queries'})) {
|
if (isset($xmlRoot->{'named-queries'})) {
|
||||||
foreach ($xmlRoot->{'named-queries'}->{'named-query'} as $namedQueryElement) {
|
foreach ($xmlRoot->{'named-queries'}->{'named-query'} as $namedQueryElement) {
|
||||||
$metadata->addNamedQuery(array(
|
$metadata->addNamedQuery(array(
|
||||||
'name' => (string)$namedQueryElement['name'],
|
'name' => (string) $namedQueryElement['name'],
|
||||||
'query' => (string)$namedQueryElement['query']
|
'query' => (string) $namedQueryElement['query']
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -107,10 +107,10 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'named-native-queries'})) {
|
if (isset($xmlRoot->{'named-native-queries'})) {
|
||||||
foreach ($xmlRoot->{'named-native-queries'}->{'named-native-query'} as $nativeQueryElement) {
|
foreach ($xmlRoot->{'named-native-queries'}->{'named-native-query'} as $nativeQueryElement) {
|
||||||
$metadata->addNamedNativeQuery(array(
|
$metadata->addNamedNativeQuery(array(
|
||||||
'name' => isset($nativeQueryElement['name']) ? (string)$nativeQueryElement['name'] : null,
|
'name' => isset($nativeQueryElement['name']) ? (string) $nativeQueryElement['name'] : null,
|
||||||
'query' => isset($nativeQueryElement->query) ? (string)$nativeQueryElement->query : null,
|
'query' => isset($nativeQueryElement->query) ? (string) $nativeQueryElement->query : null,
|
||||||
'resultClass' => isset($nativeQueryElement['result-class']) ? (string)$nativeQueryElement['result-class'] : null,
|
'resultClass' => isset($nativeQueryElement['result-class']) ? (string) $nativeQueryElement['result-class'] : null,
|
||||||
'resultSetMapping' => isset($nativeQueryElement['result-set-mapping']) ? (string)$nativeQueryElement['result-set-mapping'] : null,
|
'resultSetMapping' => isset($nativeQueryElement['result-set-mapping']) ? (string) $nativeQueryElement['result-set-mapping'] : null,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,14 +125,14 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($entityElement['entity-class'])) {
|
if (isset($entityElement['entity-class'])) {
|
||||||
$entityResult = array(
|
$entityResult = array(
|
||||||
'fields' => array(),
|
'fields' => array(),
|
||||||
'entityClass' => (string)$entityElement['entity-class'],
|
'entityClass' => (string) $entityElement['entity-class'],
|
||||||
'discriminatorColumn' => isset($entityElement['discriminator-column']) ? (string)$entityElement['discriminator-column'] : null,
|
'discriminatorColumn' => isset($entityElement['discriminator-column']) ? (string) $entityElement['discriminator-column'] : null,
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($entityElement as $fieldElement) {
|
foreach ($entityElement as $fieldElement) {
|
||||||
$entityResult['fields'][] = array(
|
$entityResult['fields'][] = array(
|
||||||
'name' => isset($fieldElement['name']) ? (string)$fieldElement['name'] : null,
|
'name' => isset($fieldElement['name']) ? (string) $fieldElement['name'] : null,
|
||||||
'column' => isset($fieldElement['column']) ? (string)$fieldElement['column'] : null,
|
'column' => isset($fieldElement['column']) ? (string) $fieldElement['column'] : null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,13 +142,13 @@ class XmlDriver extends FileDriver
|
|||||||
//<column-result/>
|
//<column-result/>
|
||||||
if (isset($entityElement['name'])) {
|
if (isset($entityElement['name'])) {
|
||||||
$columns[] = array(
|
$columns[] = array(
|
||||||
'name' => (string)$entityElement['name'],
|
'name' => (string) $entityElement['name'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$metadata->addSqlResultSetMapping(array(
|
$metadata->addSqlResultSetMapping(array(
|
||||||
'name' => (string)$rsmElement['name'],
|
'name' => (string) $rsmElement['name'],
|
||||||
'entities' => $entities,
|
'entities' => $entities,
|
||||||
'columns' => $columns
|
'columns' => $columns
|
||||||
));
|
));
|
||||||
@ -156,7 +156,7 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($xmlRoot['inheritance-type'])) {
|
if (isset($xmlRoot['inheritance-type'])) {
|
||||||
$inheritanceType = (string)$xmlRoot['inheritance-type'];
|
$inheritanceType = (string) $xmlRoot['inheritance-type'];
|
||||||
$metadata->setInheritanceType(constant('Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_' . $inheritanceType));
|
$metadata->setInheritanceType(constant('Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_' . $inheritanceType));
|
||||||
|
|
||||||
if ($metadata->inheritanceType != \Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_NONE) {
|
if ($metadata->inheritanceType != \Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_NONE) {
|
||||||
@ -164,10 +164,10 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'discriminator-column'})) {
|
if (isset($xmlRoot->{'discriminator-column'})) {
|
||||||
$discrColumn = $xmlRoot->{'discriminator-column'};
|
$discrColumn = $xmlRoot->{'discriminator-column'};
|
||||||
$metadata->setDiscriminatorColumn(array(
|
$metadata->setDiscriminatorColumn(array(
|
||||||
'name' => isset($discrColumn['name']) ? (string)$discrColumn['name'] : null,
|
'name' => isset($discrColumn['name']) ? (string) $discrColumn['name'] : null,
|
||||||
'type' => isset($discrColumn['type']) ? (string)$discrColumn['type'] : null,
|
'type' => isset($discrColumn['type']) ? (string) $discrColumn['type'] : null,
|
||||||
'length' => isset($discrColumn['length']) ? (string)$discrColumn['length'] : null,
|
'length' => isset($discrColumn['length']) ? (string) $discrColumn['length'] : null,
|
||||||
'columnDefinition' => isset($discrColumn['column-definition']) ? (string)$discrColumn['column-definition'] : null
|
'columnDefinition' => isset($discrColumn['column-definition']) ? (string) $discrColumn['column-definition'] : null
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
$metadata->setDiscriminatorColumn(array('name' => 'dtype', 'type' => 'string', 'length' => 255));
|
$metadata->setDiscriminatorColumn(array('name' => 'dtype', 'type' => 'string', 'length' => 255));
|
||||||
@ -177,7 +177,7 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'discriminator-map'})) {
|
if (isset($xmlRoot->{'discriminator-map'})) {
|
||||||
$map = array();
|
$map = array();
|
||||||
foreach ($xmlRoot->{'discriminator-map'}->{'discriminator-mapping'} as $discrMapElement) {
|
foreach ($xmlRoot->{'discriminator-map'}->{'discriminator-mapping'} as $discrMapElement) {
|
||||||
$map[(string)$discrMapElement['value']] = (string)$discrMapElement['class'];
|
$map[(string) $discrMapElement['value']] = (string) $discrMapElement['class'];
|
||||||
}
|
}
|
||||||
$metadata->setDiscriminatorMap($map);
|
$metadata->setDiscriminatorMap($map);
|
||||||
}
|
}
|
||||||
@ -188,7 +188,7 @@ class XmlDriver extends FileDriver
|
|||||||
// Evaluate <change-tracking-policy...>
|
// Evaluate <change-tracking-policy...>
|
||||||
if (isset($xmlRoot['change-tracking-policy'])) {
|
if (isset($xmlRoot['change-tracking-policy'])) {
|
||||||
$metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_'
|
$metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_'
|
||||||
. strtoupper((string)$xmlRoot['change-tracking-policy'])));
|
. strtoupper((string) $xmlRoot['change-tracking-policy'])));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evaluate <indexes...>
|
// Evaluate <indexes...>
|
||||||
@ -225,7 +225,7 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($uniqueXml['name'])) {
|
if (isset($uniqueXml['name'])) {
|
||||||
$metadata->table['uniqueConstraints'][(string)$uniqueXml['name']] = $unique;
|
$metadata->table['uniqueConstraints'][(string) $uniqueXml['name']] = $unique;
|
||||||
} else {
|
} else {
|
||||||
$metadata->table['uniqueConstraints'][] = $unique;
|
$metadata->table['uniqueConstraints'][] = $unique;
|
||||||
}
|
}
|
||||||
@ -285,29 +285,29 @@ class XmlDriver extends FileDriver
|
|||||||
$associationIds = array();
|
$associationIds = array();
|
||||||
foreach ($xmlRoot->id as $idElement) {
|
foreach ($xmlRoot->id as $idElement) {
|
||||||
if (isset($idElement['association-key']) && $this->evaluateBoolean($idElement['association-key'])) {
|
if (isset($idElement['association-key']) && $this->evaluateBoolean($idElement['association-key'])) {
|
||||||
$associationIds[(string)$idElement['name']] = true;
|
$associationIds[(string) $idElement['name']] = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$mapping = array(
|
$mapping = array(
|
||||||
'id' => true,
|
'id' => true,
|
||||||
'fieldName' => (string)$idElement['name']
|
'fieldName' => (string) $idElement['name']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($idElement['type'])) {
|
if (isset($idElement['type'])) {
|
||||||
$mapping['type'] = (string)$idElement['type'];
|
$mapping['type'] = (string) $idElement['type'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($idElement['length'])) {
|
if (isset($idElement['length'])) {
|
||||||
$mapping['length'] = (string)$idElement['length'];
|
$mapping['length'] = (string) $idElement['length'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($idElement['column'])) {
|
if (isset($idElement['column'])) {
|
||||||
$mapping['columnName'] = (string)$idElement['column'];
|
$mapping['columnName'] = (string) $idElement['column'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($idElement['column-definition'])) {
|
if (isset($idElement['column-definition'])) {
|
||||||
$mapping['columnDefinition'] = (string)$idElement['column-definition'];
|
$mapping['columnDefinition'] = (string) $idElement['column-definition'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($idElement->options)) {
|
if (isset($idElement->options)) {
|
||||||
@ -318,18 +318,18 @@ class XmlDriver extends FileDriver
|
|||||||
|
|
||||||
if (isset($idElement->generator)) {
|
if (isset($idElement->generator)) {
|
||||||
$strategy = isset($idElement->generator['strategy']) ?
|
$strategy = isset($idElement->generator['strategy']) ?
|
||||||
(string)$idElement->generator['strategy'] : 'AUTO';
|
(string) $idElement->generator['strategy'] : 'AUTO';
|
||||||
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
||||||
. $strategy));
|
. $strategy));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for SequenceGenerator/TableGenerator definition
|
// Check for SequenceGenerator/TableGenerator definition
|
||||||
if (isset($idElement->{'sequence-generator'})) {
|
if (isset($idElement->{'sequence-generator'})) {
|
||||||
$seqGenerator = $idElement->{'sequence-generator'};
|
$seqGenerator = $idElement->{'sequence-generator'};
|
||||||
$metadata->setSequenceGeneratorDefinition(array(
|
$metadata->setSequenceGeneratorDefinition(array(
|
||||||
'sequenceName' => (string)$seqGenerator['sequence-name'],
|
'sequenceName' => (string) $seqGenerator['sequence-name'],
|
||||||
'allocationSize' => (string)$seqGenerator['allocation-size'],
|
'allocationSize' => (string) $seqGenerator['allocation-size'],
|
||||||
'initialValue' => (string)$seqGenerator['initial-value']
|
'initialValue' => (string) $seqGenerator['initial-value']
|
||||||
));
|
));
|
||||||
} else if (isset($idElement->{'custom-id-generator'})) {
|
} else if (isset($idElement->{'custom-id-generator'})) {
|
||||||
$customGenerator = $idElement->{'custom-id-generator'};
|
$customGenerator = $idElement->{'custom-id-generator'};
|
||||||
@ -345,8 +345,8 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'one-to-one'})) {
|
if (isset($xmlRoot->{'one-to-one'})) {
|
||||||
foreach ($xmlRoot->{'one-to-one'} as $oneToOneElement) {
|
foreach ($xmlRoot->{'one-to-one'} as $oneToOneElement) {
|
||||||
$mapping = array(
|
$mapping = array(
|
||||||
'fieldName' => (string)$oneToOneElement['field'],
|
'fieldName' => (string) $oneToOneElement['field'],
|
||||||
'targetEntity' => (string)$oneToOneElement['target-entity']
|
'targetEntity' => (string) $oneToOneElement['target-entity']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($associationIds[$mapping['fieldName']])) {
|
if (isset($associationIds[$mapping['fieldName']])) {
|
||||||
@ -354,14 +354,14 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToOneElement['fetch'])) {
|
if (isset($oneToOneElement['fetch'])) {
|
||||||
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string)$oneToOneElement['fetch']);
|
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $oneToOneElement['fetch']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToOneElement['mapped-by'])) {
|
if (isset($oneToOneElement['mapped-by'])) {
|
||||||
$mapping['mappedBy'] = (string)$oneToOneElement['mapped-by'];
|
$mapping['mappedBy'] = (string) $oneToOneElement['mapped-by'];
|
||||||
} else {
|
} else {
|
||||||
if (isset($oneToOneElement['inversed-by'])) {
|
if (isset($oneToOneElement['inversed-by'])) {
|
||||||
$mapping['inversedBy'] = (string)$oneToOneElement['inversed-by'];
|
$mapping['inversedBy'] = (string) $oneToOneElement['inversed-by'];
|
||||||
}
|
}
|
||||||
$joinColumns = array();
|
$joinColumns = array();
|
||||||
|
|
||||||
@ -397,13 +397,13 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'one-to-many'})) {
|
if (isset($xmlRoot->{'one-to-many'})) {
|
||||||
foreach ($xmlRoot->{'one-to-many'} as $oneToManyElement) {
|
foreach ($xmlRoot->{'one-to-many'} as $oneToManyElement) {
|
||||||
$mapping = array(
|
$mapping = array(
|
||||||
'fieldName' => (string)$oneToManyElement['field'],
|
'fieldName' => (string) $oneToManyElement['field'],
|
||||||
'targetEntity' => (string)$oneToManyElement['target-entity'],
|
'targetEntity' => (string) $oneToManyElement['target-entity'],
|
||||||
'mappedBy' => (string)$oneToManyElement['mapped-by']
|
'mappedBy' => (string) $oneToManyElement['mapped-by']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($oneToManyElement['fetch'])) {
|
if (isset($oneToManyElement['fetch'])) {
|
||||||
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string)$oneToManyElement['fetch']);
|
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $oneToManyElement['fetch']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToManyElement->cascade)) {
|
if (isset($oneToManyElement->cascade)) {
|
||||||
@ -417,13 +417,13 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($oneToManyElement->{'order-by'})) {
|
if (isset($oneToManyElement->{'order-by'})) {
|
||||||
$orderBy = array();
|
$orderBy = array();
|
||||||
foreach ($oneToManyElement->{'order-by'}->{'order-by-field'} as $orderByField) {
|
foreach ($oneToManyElement->{'order-by'}->{'order-by-field'} as $orderByField) {
|
||||||
$orderBy[(string)$orderByField['name']] = (string)$orderByField['direction'];
|
$orderBy[(string) $orderByField['name']] = (string) $orderByField['direction'];
|
||||||
}
|
}
|
||||||
$mapping['orderBy'] = $orderBy;
|
$mapping['orderBy'] = $orderBy;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToManyElement['index-by'])) {
|
if (isset($oneToManyElement['index-by'])) {
|
||||||
$mapping['indexBy'] = (string)$oneToManyElement['index-by'];
|
$mapping['indexBy'] = (string) $oneToManyElement['index-by'];
|
||||||
} else if (isset($oneToManyElement->{'index-by'})) {
|
} else if (isset($oneToManyElement->{'index-by'})) {
|
||||||
throw new \InvalidArgumentException("<index-by /> is not a valid tag");
|
throw new \InvalidArgumentException("<index-by /> is not a valid tag");
|
||||||
}
|
}
|
||||||
@ -441,8 +441,8 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'many-to-one'})) {
|
if (isset($xmlRoot->{'many-to-one'})) {
|
||||||
foreach ($xmlRoot->{'many-to-one'} as $manyToOneElement) {
|
foreach ($xmlRoot->{'many-to-one'} as $manyToOneElement) {
|
||||||
$mapping = array(
|
$mapping = array(
|
||||||
'fieldName' => (string)$manyToOneElement['field'],
|
'fieldName' => (string) $manyToOneElement['field'],
|
||||||
'targetEntity' => (string)$manyToOneElement['target-entity']
|
'targetEntity' => (string) $manyToOneElement['target-entity']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($associationIds[$mapping['fieldName']])) {
|
if (isset($associationIds[$mapping['fieldName']])) {
|
||||||
@ -450,11 +450,11 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToOneElement['fetch'])) {
|
if (isset($manyToOneElement['fetch'])) {
|
||||||
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string)$manyToOneElement['fetch']);
|
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $manyToOneElement['fetch']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToOneElement['inversed-by'])) {
|
if (isset($manyToOneElement['inversed-by'])) {
|
||||||
$mapping['inversedBy'] = (string)$manyToOneElement['inversed-by'];
|
$mapping['inversedBy'] = (string) $manyToOneElement['inversed-by'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$joinColumns = array();
|
$joinColumns = array();
|
||||||
@ -487,12 +487,12 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($xmlRoot->{'many-to-many'})) {
|
if (isset($xmlRoot->{'many-to-many'})) {
|
||||||
foreach ($xmlRoot->{'many-to-many'} as $manyToManyElement) {
|
foreach ($xmlRoot->{'many-to-many'} as $manyToManyElement) {
|
||||||
$mapping = array(
|
$mapping = array(
|
||||||
'fieldName' => (string)$manyToManyElement['field'],
|
'fieldName' => (string) $manyToManyElement['field'],
|
||||||
'targetEntity' => (string)$manyToManyElement['target-entity']
|
'targetEntity' => (string) $manyToManyElement['target-entity']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($manyToManyElement['fetch'])) {
|
if (isset($manyToManyElement['fetch'])) {
|
||||||
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string)$manyToManyElement['fetch']);
|
$mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $manyToManyElement['fetch']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToManyElement['orphan-removal'])) {
|
if (isset($manyToManyElement['orphan-removal'])) {
|
||||||
@ -500,19 +500,19 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToManyElement['mapped-by'])) {
|
if (isset($manyToManyElement['mapped-by'])) {
|
||||||
$mapping['mappedBy'] = (string)$manyToManyElement['mapped-by'];
|
$mapping['mappedBy'] = (string) $manyToManyElement['mapped-by'];
|
||||||
} else if (isset($manyToManyElement->{'join-table'})) {
|
} else if (isset($manyToManyElement->{'join-table'})) {
|
||||||
if (isset($manyToManyElement['inversed-by'])) {
|
if (isset($manyToManyElement['inversed-by'])) {
|
||||||
$mapping['inversedBy'] = (string)$manyToManyElement['inversed-by'];
|
$mapping['inversedBy'] = (string) $manyToManyElement['inversed-by'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$joinTableElement = $manyToManyElement->{'join-table'};
|
$joinTableElement = $manyToManyElement->{'join-table'};
|
||||||
$joinTable = array(
|
$joinTable = array(
|
||||||
'name' => (string)$joinTableElement['name']
|
'name' => (string) $joinTableElement['name']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($joinTableElement['schema'])) {
|
if (isset($joinTableElement['schema'])) {
|
||||||
$joinTable['schema'] = (string)$joinTableElement['schema'];
|
$joinTable['schema'] = (string) $joinTableElement['schema'];
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($joinTableElement->{'join-columns'}->{'join-column'} as $joinColumnElement) {
|
foreach ($joinTableElement->{'join-columns'}->{'join-column'} as $joinColumnElement) {
|
||||||
@ -533,13 +533,13 @@ class XmlDriver extends FileDriver
|
|||||||
if (isset($manyToManyElement->{'order-by'})) {
|
if (isset($manyToManyElement->{'order-by'})) {
|
||||||
$orderBy = array();
|
$orderBy = array();
|
||||||
foreach ($manyToManyElement->{'order-by'}->{'order-by-field'} as $orderByField) {
|
foreach ($manyToManyElement->{'order-by'}->{'order-by-field'} as $orderByField) {
|
||||||
$orderBy[(string)$orderByField['name']] = (string)$orderByField['direction'];
|
$orderBy[(string) $orderByField['name']] = (string) $orderByField['direction'];
|
||||||
}
|
}
|
||||||
$mapping['orderBy'] = $orderBy;
|
$mapping['orderBy'] = $orderBy;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToManyElement['index-by'])) {
|
if (isset($manyToManyElement['index-by'])) {
|
||||||
$mapping['indexBy'] = (string)$manyToManyElement['index-by'];
|
$mapping['indexBy'] = (string) $manyToManyElement['index-by'];
|
||||||
} else if (isset($manyToManyElement->{'index-by'})) {
|
} else if (isset($manyToManyElement->{'index-by'})) {
|
||||||
throw new \InvalidArgumentException("<index-by /> is not a valid tag");
|
throw new \InvalidArgumentException("<index-by /> is not a valid tag");
|
||||||
}
|
}
|
||||||
@ -617,7 +617,7 @@ class XmlDriver extends FileDriver
|
|||||||
// Evaluate <lifecycle-callbacks...>
|
// Evaluate <lifecycle-callbacks...>
|
||||||
if (isset($xmlRoot->{'lifecycle-callbacks'})) {
|
if (isset($xmlRoot->{'lifecycle-callbacks'})) {
|
||||||
foreach ($xmlRoot->{'lifecycle-callbacks'}->{'lifecycle-callback'} as $lifecycleCallback) {
|
foreach ($xmlRoot->{'lifecycle-callbacks'}->{'lifecycle-callback'} as $lifecycleCallback) {
|
||||||
$metadata->addLifecycleCallback((string)$lifecycleCallback['method'], constant('Doctrine\ORM\Events::' . (string)$lifecycleCallback['type']));
|
$metadata->addLifecycleCallback((string) $lifecycleCallback['method'], constant('Doctrine\ORM\Events::' . (string) $lifecycleCallback['type']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -626,7 +626,7 @@ class XmlDriver extends FileDriver
|
|||||||
foreach ($xmlRoot->{'entity-listeners'}->{'entity-listener'} as $listenerElement) {
|
foreach ($xmlRoot->{'entity-listeners'}->{'entity-listener'} as $listenerElement) {
|
||||||
$className = (string) $listenerElement['class'];
|
$className = (string) $listenerElement['class'];
|
||||||
// Evaluate the listener using naming convention.
|
// Evaluate the listener using naming convention.
|
||||||
if($listenerElement->count() === 0) {
|
if ($listenerElement->count() === 0) {
|
||||||
EntityListenerBuilder::bindEntityListener($metadata, $className);
|
EntityListenerBuilder::bindEntityListener($metadata, $className);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -684,8 +684,8 @@ class XmlDriver extends FileDriver
|
|||||||
private function joinColumnToArray(SimpleXMLElement $joinColumnElement)
|
private function joinColumnToArray(SimpleXMLElement $joinColumnElement)
|
||||||
{
|
{
|
||||||
$joinColumn = array(
|
$joinColumn = array(
|
||||||
'name' => (string)$joinColumnElement['name'],
|
'name' => (string) $joinColumnElement['name'],
|
||||||
'referencedColumnName' => (string)$joinColumnElement['referenced-column-name']
|
'referencedColumnName' => (string) $joinColumnElement['referenced-column-name']
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($joinColumnElement['unique'])) {
|
if (isset($joinColumnElement['unique'])) {
|
||||||
@ -697,11 +697,11 @@ class XmlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($joinColumnElement['on-delete'])) {
|
if (isset($joinColumnElement['on-delete'])) {
|
||||||
$joinColumn['onDelete'] = (string)$joinColumnElement['on-delete'];
|
$joinColumn['onDelete'] = (string) $joinColumnElement['on-delete'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($joinColumnElement['column-definition'])) {
|
if (isset($joinColumnElement['column-definition'])) {
|
||||||
$joinColumn['columnDefinition'] = (string)$joinColumnElement['column-definition'];
|
$joinColumn['columnDefinition'] = (string) $joinColumnElement['column-definition'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $joinColumn;
|
return $joinColumn;
|
||||||
@ -808,6 +808,7 @@ class XmlDriver extends FileDriver
|
|||||||
// anything about the supported cascading actions
|
// anything about the supported cascading actions
|
||||||
$cascades[] = str_replace('cascade-', '', $action->getName());
|
$cascades[] = str_replace('cascade-', '', $action->getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $cascades;
|
return $cascades;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -821,12 +822,12 @@ class XmlDriver extends FileDriver
|
|||||||
|
|
||||||
if (isset($xmlElement->entity)) {
|
if (isset($xmlElement->entity)) {
|
||||||
foreach ($xmlElement->entity as $entityElement) {
|
foreach ($xmlElement->entity as $entityElement) {
|
||||||
$entityName = (string)$entityElement['name'];
|
$entityName = (string) $entityElement['name'];
|
||||||
$result[$entityName] = $entityElement;
|
$result[$entityName] = $entityElement;
|
||||||
}
|
}
|
||||||
} else if (isset($xmlElement->{'mapped-superclass'})) {
|
} else if (isset($xmlElement->{'mapped-superclass'})) {
|
||||||
foreach ($xmlElement->{'mapped-superclass'} as $mappedSuperClass) {
|
foreach ($xmlElement->{'mapped-superclass'} as $mappedSuperClass) {
|
||||||
$className = (string)$mappedSuperClass['name'];
|
$className = (string) $mappedSuperClass['name'];
|
||||||
$result[$className] = $mappedSuperClass;
|
$result[$className] = $mappedSuperClass;
|
||||||
}
|
}
|
||||||
} else if (isset($xmlElement->embeddable)) {
|
} else if (isset($xmlElement->embeddable)) {
|
||||||
@ -846,7 +847,7 @@ class XmlDriver extends FileDriver
|
|||||||
*/
|
*/
|
||||||
protected function evaluateBoolean($element)
|
protected function evaluateBoolean($element)
|
||||||
{
|
{
|
||||||
$flag = (string)$element;
|
$flag = (string) $element;
|
||||||
|
|
||||||
return ($flag == "true" || $flag == "1");
|
return ($flag == "true" || $flag == "1");
|
||||||
}
|
}
|
||||||
|
@ -175,10 +175,10 @@ class YamlDriver extends FileDriver
|
|||||||
if (isset($element['discriminatorColumn'])) {
|
if (isset($element['discriminatorColumn'])) {
|
||||||
$discrColumn = $element['discriminatorColumn'];
|
$discrColumn = $element['discriminatorColumn'];
|
||||||
$metadata->setDiscriminatorColumn(array(
|
$metadata->setDiscriminatorColumn(array(
|
||||||
'name' => isset($discrColumn['name']) ? (string)$discrColumn['name'] : null,
|
'name' => isset($discrColumn['name']) ? (string) $discrColumn['name'] : null,
|
||||||
'type' => isset($discrColumn['type']) ? (string)$discrColumn['type'] : null,
|
'type' => isset($discrColumn['type']) ? (string) $discrColumn['type'] : null,
|
||||||
'length' => isset($discrColumn['length']) ? (string)$discrColumn['length'] : null,
|
'length' => isset($discrColumn['length']) ? (string) $discrColumn['length'] : null,
|
||||||
'columnDefinition' => isset($discrColumn['columnDefinition']) ? (string)$discrColumn['columnDefinition'] : null
|
'columnDefinition' => isset($discrColumn['columnDefinition']) ? (string) $discrColumn['columnDefinition'] : null
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
$metadata->setDiscriminatorColumn(array('name' => 'dtype', 'type' => 'string', 'length' => 255));
|
$metadata->setDiscriminatorColumn(array('name' => 'dtype', 'type' => 'string', 'length' => 255));
|
||||||
@ -195,7 +195,7 @@ class YamlDriver extends FileDriver
|
|||||||
// Evaluate changeTrackingPolicy
|
// Evaluate changeTrackingPolicy
|
||||||
if (isset($element['changeTrackingPolicy'])) {
|
if (isset($element['changeTrackingPolicy'])) {
|
||||||
$metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_'
|
$metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_'
|
||||||
. strtoupper($element['changeTrackingPolicy'])));
|
. strtoupper($element['changeTrackingPolicy'])));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evaluate indexes
|
// Evaluate indexes
|
||||||
@ -290,7 +290,7 @@ class YamlDriver extends FileDriver
|
|||||||
|
|
||||||
if (isset($idElement['generator'])) {
|
if (isset($idElement['generator'])) {
|
||||||
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
||||||
. strtoupper($idElement['generator']['strategy'])));
|
. strtoupper($idElement['generator']['strategy'])));
|
||||||
}
|
}
|
||||||
// Check for SequenceGenerator/TableGenerator definition
|
// Check for SequenceGenerator/TableGenerator definition
|
||||||
if (isset($idElement['sequenceGenerator'])) {
|
if (isset($idElement['sequenceGenerator'])) {
|
||||||
@ -316,7 +316,7 @@ class YamlDriver extends FileDriver
|
|||||||
$mapping['id'] = true;
|
$mapping['id'] = true;
|
||||||
if (isset($fieldMapping['generator']['strategy'])) {
|
if (isset($fieldMapping['generator']['strategy'])) {
|
||||||
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
$metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_'
|
||||||
. strtoupper($fieldMapping['generator']['strategy'])));
|
. strtoupper($fieldMapping['generator']['strategy'])));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ class YamlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToOneElement['orphanRemoval'])) {
|
if (isset($oneToOneElement['orphanRemoval'])) {
|
||||||
$mapping['orphanRemoval'] = (bool)$oneToOneElement['orphanRemoval'];
|
$mapping['orphanRemoval'] = (bool) $oneToOneElement['orphanRemoval'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evaluate second level cache
|
// Evaluate second level cache
|
||||||
@ -415,7 +415,7 @@ class YamlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToManyElement['orphanRemoval'])) {
|
if (isset($oneToManyElement['orphanRemoval'])) {
|
||||||
$mapping['orphanRemoval'] = (bool)$oneToManyElement['orphanRemoval'];
|
$mapping['orphanRemoval'] = (bool) $oneToManyElement['orphanRemoval'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($oneToManyElement['orderBy'])) {
|
if (isset($oneToManyElement['orderBy'])) {
|
||||||
@ -548,7 +548,7 @@ class YamlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($manyToManyElement['orphanRemoval'])) {
|
if (isset($manyToManyElement['orphanRemoval'])) {
|
||||||
$mapping['orphanRemoval'] = (bool)$manyToManyElement['orphanRemoval'];
|
$mapping['orphanRemoval'] = (bool) $manyToManyElement['orphanRemoval'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evaluate second level cache
|
// Evaluate second level cache
|
||||||
@ -646,7 +646,7 @@ class YamlDriver extends FileDriver
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($entityListener as $eventName => $callbackElement){
|
foreach ($entityListener as $eventName => $callbackElement) {
|
||||||
foreach ($callbackElement as $methodName) {
|
foreach ($callbackElement as $methodName) {
|
||||||
$metadata->addEntityListener($eventName, $className, $methodName);
|
$metadata->addEntityListener($eventName, $className, $methodName);
|
||||||
}
|
}
|
||||||
@ -739,7 +739,7 @@ class YamlDriver extends FileDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($column['unique'])) {
|
if (isset($column['unique'])) {
|
||||||
$mapping['unique'] = (bool)$column['unique'];
|
$mapping['unique'] = (bool) $column['unique'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($column['options'])) {
|
if (isset($column['options'])) {
|
||||||
|
@ -31,8 +31,8 @@ interface EntityListenerResolver
|
|||||||
/**
|
/**
|
||||||
* Clear all instances from the set, or a specific class when given.
|
* Clear all instances from the set, or a specific class when given.
|
||||||
*
|
*
|
||||||
* @param string $className The fully-qualified class name
|
* @param string $className The fully-qualified class name
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function clear($className = null);
|
function clear($className = null);
|
||||||
@ -40,16 +40,16 @@ interface EntityListenerResolver
|
|||||||
/**
|
/**
|
||||||
* Returns a entity listener instance for the given class name.
|
* Returns a entity listener instance for the given class name.
|
||||||
*
|
*
|
||||||
* @param string $className The fully-qualified class name
|
* @param string $className The fully-qualified class name
|
||||||
*
|
*
|
||||||
* @return object An entity listener
|
* @return object An entity listener
|
||||||
*/
|
*/
|
||||||
function resolve($className);
|
function resolve($className);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a entity listener instance.
|
* Register a entity listener instance.
|
||||||
*
|
*
|
||||||
* @param object $object An entity listener
|
* @param object $object An entity listener
|
||||||
*/
|
*/
|
||||||
function register($object);
|
function register($object);
|
||||||
}
|
}
|
||||||
|
@ -326,7 +326,7 @@ class MappingException extends \Doctrine\ORM\ORMException
|
|||||||
public static function joinColumnMustPointToMappedField($className, $joinColumn)
|
public static function joinColumnMustPointToMappedField($className, $joinColumn)
|
||||||
{
|
{
|
||||||
return new self('The column ' . $joinColumn . ' must be mapped to a field in class '
|
return new self('The column ' . $joinColumn . ' must be mapped to a field in class '
|
||||||
. $className . ' since it is referenced by a join column of another class.');
|
. $className . ' since it is referenced by a join column of another class.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -434,7 +434,7 @@ class MappingException extends \Doctrine\ORM\ORMException
|
|||||||
public static function unsupportedOptimisticLockingType($entity, $fieldName, $unsupportedType)
|
public static function unsupportedOptimisticLockingType($entity, $fieldName, $unsupportedType)
|
||||||
{
|
{
|
||||||
return new self('Locking type "'.$unsupportedType.'" (specified in "'.$entity.'", field "'.$fieldName.'") '
|
return new self('Locking type "'.$unsupportedType.'" (specified in "'.$entity.'", field "'.$fieldName.'") '
|
||||||
.'is not supported by Doctrine.'
|
.'is not supported by Doctrine.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,7 +482,7 @@ class MappingException extends \Doctrine\ORM\ORMException
|
|||||||
public static function duplicateDiscriminatorEntry($className, array $entries, array $map)
|
public static function duplicateDiscriminatorEntry($className, array $entries, array $map)
|
||||||
{
|
{
|
||||||
return new self(
|
return new self(
|
||||||
"The entries " . implode(', ', $entries) . " in discriminator map of class '" . $className . "' is duplicated. " .
|
"The entries " . implode(', ', $entries) . " in discriminator map of class '" . $className . "' is duplicated. " .
|
||||||
"If the discriminator map is automatically generated you have to convert it to an explicit discriminator map now. " .
|
"If the discriminator map is automatically generated you have to convert it to an explicit discriminator map now. " .
|
||||||
"The entries of the current map are: @DiscriminatorMap({" . implode(', ', array_map(
|
"The entries of the current map are: @DiscriminatorMap({" . implode(', ', array_map(
|
||||||
function($a, $b) { return "'$a': '$b'"; }, array_keys($map), array_values($map)
|
function($a, $b) { return "'$a': '$b'"; }, array_keys($map), array_values($map)
|
||||||
@ -633,7 +633,7 @@ class MappingException extends \Doctrine\ORM\ORMException
|
|||||||
public static function illegalOrphanRemoval($className, $field)
|
public static function illegalOrphanRemoval($className, $field)
|
||||||
{
|
{
|
||||||
return new self("Orphan removal is only allowed on one-to-one and one-to-many ".
|
return new self("Orphan removal is only allowed on one-to-one and one-to-many ".
|
||||||
"associations, but " . $className."#" .$field . " is not.");
|
"associations, but " . $className."#" .$field . " is not.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -772,6 +772,7 @@ class MappingException extends \Doctrine\ORM\ORMException
|
|||||||
public static function invalidCascadeOption(array $cascades, $className, $propertyName)
|
public static function invalidCascadeOption(array $cascades, $className, $propertyName)
|
||||||
{
|
{
|
||||||
$cascades = implode(", ", array_map(function ($e) { return "'" . $e . "'"; }, $cascades));
|
$cascades = implode(", ", array_map(function ($e) { return "'" . $e . "'"; }, $cascades));
|
||||||
|
|
||||||
return new self(sprintf(
|
return new self(sprintf(
|
||||||
"You have specified invalid cascade options for %s::$%s: %s; available options: 'remove', 'persist', 'refresh', 'merge', and 'detach'",
|
"You have specified invalid cascade options for %s::$%s: %s; available options: 'remove', 'persist', 'refresh', 'merge', and 'detach'",
|
||||||
$className,
|
$className,
|
||||||
|
@ -90,15 +90,13 @@ class ORMInvalidArgumentException extends \InvalidArgumentException
|
|||||||
static public function newEntityFoundThroughRelationship(array $assoc, $entry)
|
static public function newEntityFoundThroughRelationship(array $assoc, $entry)
|
||||||
{
|
{
|
||||||
return new self("A new entity was found through the relationship '"
|
return new self("A new entity was found through the relationship '"
|
||||||
. $assoc['sourceEntity'] . "#" . $assoc['fieldName'] . "' that was not"
|
. $assoc['sourceEntity'] . "#" . $assoc['fieldName'] . "' that was not"
|
||||||
. " configured to cascade persist operations for entity: " . self::objToStr($entry) . "."
|
. " configured to cascade persist operations for entity: " . self::objToStr($entry) . "."
|
||||||
. " To solve this issue: Either explicitly call EntityManager#persist()"
|
. " To solve this issue: Either explicitly call EntityManager#persist()"
|
||||||
. " on this unknown entity or configure cascade persist "
|
. " on this unknown entity or configure cascade persist "
|
||||||
. " this association in the mapping for example @ManyToOne(..,cascade={\"persist\"})."
|
. " this association in the mapping for example @ManyToOne(..,cascade={\"persist\"})."
|
||||||
. (method_exists($entry, '__toString') ?
|
. (method_exists($entry, '__toString') ? "": " If you cannot find out which entity causes the problem"
|
||||||
"":
|
. " implement '" . $assoc['targetEntity'] . "#__toString()' to get a clue."));
|
||||||
" If you cannot find out which entity causes the problem"
|
|
||||||
." implement '" . $assoc['targetEntity'] . "#__toString()' to get a clue."));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,8 +108,8 @@ class ORMInvalidArgumentException extends \InvalidArgumentException
|
|||||||
static public function detachedEntityFoundThroughRelationship(array $assoc, $entry)
|
static public function detachedEntityFoundThroughRelationship(array $assoc, $entry)
|
||||||
{
|
{
|
||||||
return new self("A detached entity of type " . $assoc['targetEntity'] . " (" . self::objToStr($entry) . ") "
|
return new self("A detached entity of type " . $assoc['targetEntity'] . " (" . self::objToStr($entry) . ") "
|
||||||
. " was found through the relationship '" . $assoc['sourceEntity'] . "#" . $assoc['fieldName'] . "' "
|
. " was found through the relationship '" . $assoc['sourceEntity'] . "#" . $assoc['fieldName'] . "' "
|
||||||
. "during cascading a persist operation.");
|
. "during cascading a persist operation.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,7 +120,7 @@ class ORMInvalidArgumentException extends \InvalidArgumentException
|
|||||||
static public function entityNotManaged($entity)
|
static public function entityNotManaged($entity)
|
||||||
{
|
{
|
||||||
return new self("Entity " . self::objToStr($entity) . " is not managed. An entity is managed if its fetched " .
|
return new self("Entity " . self::objToStr($entity) . " is not managed. An entity is managed if its fetched " .
|
||||||
"from the database or registered as new through EntityManager#persist");
|
"from the database or registered as new through EntityManager#persist");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -168,7 +166,7 @@ class ORMInvalidArgumentException extends \InvalidArgumentException
|
|||||||
public static function invalidObject($context, $given, $parameterIndex = 1)
|
public static function invalidObject($context, $given, $parameterIndex = 1)
|
||||||
{
|
{
|
||||||
return new self($context . ' expects parameter ' . $parameterIndex .
|
return new self($context . ' expects parameter ' . $parameterIndex .
|
||||||
' to be an entity object, '. gettype($given) . ' given.');
|
' to be an entity object, '. gettype($given) . ' given.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -221,6 +219,6 @@ class ORMInvalidArgumentException extends \InvalidArgumentException
|
|||||||
*/
|
*/
|
||||||
private static function objToStr($obj)
|
private static function objToStr($obj)
|
||||||
{
|
{
|
||||||
return method_exists($obj, '__toString') ? (string)$obj : get_class($obj).'@'.spl_object_hash($obj);
|
return method_exists($obj, '__toString') ? (string) $obj : get_class($obj).'@'.spl_object_hash($obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,11 +75,12 @@ class OptimisticLockException extends ORMException
|
|||||||
{
|
{
|
||||||
$expectedLockVersion = ($expectedLockVersion instanceof \DateTime) ? $expectedLockVersion->getTimestamp() : $expectedLockVersion;
|
$expectedLockVersion = ($expectedLockVersion instanceof \DateTime) ? $expectedLockVersion->getTimestamp() : $expectedLockVersion;
|
||||||
$actualLockVersion = ($actualLockVersion instanceof \DateTime) ? $actualLockVersion->getTimestamp() : $actualLockVersion;
|
$actualLockVersion = ($actualLockVersion instanceof \DateTime) ? $actualLockVersion->getTimestamp() : $actualLockVersion;
|
||||||
|
|
||||||
return new self("The optimistic lock failed, version " . $expectedLockVersion . " was expected, but is actually ".$actualLockVersion, $entity);
|
return new self("The optimistic lock failed, version " . $expectedLockVersion . " was expected, but is actually ".$actualLockVersion, $entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $entityName
|
* @param string $entityName
|
||||||
*
|
*
|
||||||
* @return OptimisticLockException
|
* @return OptimisticLockException
|
||||||
*/
|
*/
|
||||||
|
@ -2047,6 +2047,7 @@ class BasicEntityPersister implements EntityPersister
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = implode(' AND ', $filterClauses);
|
$sql = implode(' AND ', $filterClauses);
|
||||||
|
|
||||||
return $sql ? "(" . $sql . ")" : ""; // Wrap again to avoid "X or Y and FilterConditionSQL"
|
return $sql ? "(" . $sql . ")" : ""; // Wrap again to avoid "X or Y and FilterConditionSQL"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,8 @@ interface EntityPersister
|
|||||||
/**
|
/**
|
||||||
* Get the COUNT SQL to count entities (optionally based on a criteria)
|
* Get the COUNT SQL to count entities (optionally based on a criteria)
|
||||||
*
|
*
|
||||||
* @param array|\Doctrine\Common\Collections\Criteria $criteria
|
* @param array|\Doctrine\Common\Collections\Criteria $criteria
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getCountSQL($criteria = array());
|
public function getCountSQL($criteria = array());
|
||||||
@ -201,8 +202,8 @@ interface EntityPersister
|
|||||||
/**
|
/**
|
||||||
* Loads an entity by identifier.
|
* Loads an entity by identifier.
|
||||||
*
|
*
|
||||||
* @param array $identifier The entity identifier.
|
* @param array $identifier The entity identifier.
|
||||||
* @param object|null $entity The entity to load the data into. If not specified, a new entity is created.
|
* @param object|null $entity The entity to load the data into. If not specified, a new entity is created.
|
||||||
*
|
*
|
||||||
* @return object The loaded and managed entity instance or NULL if the entity can not be found.
|
* @return object The loaded and managed entity instance or NULL if the entity can not be found.
|
||||||
*
|
*
|
||||||
@ -289,7 +290,7 @@ interface EntityPersister
|
|||||||
*
|
*
|
||||||
* @param array $assoc
|
* @param array $assoc
|
||||||
* @param object $sourceEntity
|
* @param object $sourceEntity
|
||||||
* @param PersistentCollection $collection The collection to load/fill.
|
* @param PersistentCollection $collection The collection to load/fill.
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
|
@ -589,7 +589,8 @@ class JoinedSubclassPersister extends AbstractEntityInheritancePersister
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $baseTableAlias
|
* @param string $baseTableAlias
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function getJoinSql($baseTableAlias)
|
private function getJoinSql($baseTableAlias)
|
||||||
|
@ -657,7 +657,7 @@ final class Query extends AbstractQuery
|
|||||||
*
|
*
|
||||||
* @see \Doctrine\DBAL\LockMode
|
* @see \Doctrine\DBAL\LockMode
|
||||||
*
|
*
|
||||||
* @param int $lockMode
|
* @param int $lockMode
|
||||||
*
|
*
|
||||||
* @return Query
|
* @return Query
|
||||||
*
|
*
|
||||||
|
@ -51,9 +51,9 @@ class ComparisonExpression extends Node
|
|||||||
public $operator;
|
public $operator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Node $leftExpr
|
* @param Node $leftExpr
|
||||||
* @param string $operator
|
* @param string $operator
|
||||||
* @param Node $rightExpr
|
* @param Node $rightExpr
|
||||||
*/
|
*/
|
||||||
public function __construct($leftExpr, $operator, $rightExpr)
|
public function __construct($leftExpr, $operator, $rightExpr)
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "BIT_AND" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
* "BIT_AND" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.2
|
* @since 2.2
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||||
@ -40,6 +40,7 @@ class BitAndFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
||||||
|
|
||||||
return $platform->getBitAndComparisonExpression(
|
return $platform->getBitAndComparisonExpression(
|
||||||
$this->firstArithmetic->dispatch($sqlWalker),
|
$this->firstArithmetic->dispatch($sqlWalker),
|
||||||
$this->secondArithmetic->dispatch($sqlWalker)
|
$this->secondArithmetic->dispatch($sqlWalker)
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "BIT_OR" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
* "BIT_OR" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.2
|
* @since 2.2
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||||
@ -40,6 +40,7 @@ class BitOrFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
||||||
|
|
||||||
return $platform->getBitOrComparisonExpression(
|
return $platform->getBitOrComparisonExpression(
|
||||||
$this->firstArithmetic->dispatch($sqlWalker),
|
$this->firstArithmetic->dispatch($sqlWalker),
|
||||||
$this->secondArithmetic->dispatch($sqlWalker)
|
$this->secondArithmetic->dispatch($sqlWalker)
|
||||||
|
@ -35,24 +35,24 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
class ConcatFunction extends FunctionNode
|
class ConcatFunction extends FunctionNode
|
||||||
{
|
{
|
||||||
public $firstStringPrimary;
|
public $firstStringPrimary;
|
||||||
|
|
||||||
public $secondStringPrimary;
|
public $secondStringPrimary;
|
||||||
|
|
||||||
public $concatExpressions = array();
|
public $concatExpressions = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @override
|
* @override
|
||||||
*/
|
*/
|
||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
$platform = $sqlWalker->getConnection()->getDatabasePlatform();
|
||||||
|
|
||||||
$args = array();
|
$args = array();
|
||||||
|
|
||||||
foreach ($this->concatExpressions as $expression) {
|
foreach ($this->concatExpressions as $expression) {
|
||||||
$args[] = $sqlWalker->walkStringPrimary($expression);
|
$args[] = $sqlWalker->walkStringPrimary($expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
return call_user_func_array(array($platform,'getConcatExpression'), $args);
|
return call_user_func_array(array($platform,'getConcatExpression'), $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,18 +63,18 @@ class ConcatFunction extends FunctionNode
|
|||||||
{
|
{
|
||||||
$parser->match(Lexer::T_IDENTIFIER);
|
$parser->match(Lexer::T_IDENTIFIER);
|
||||||
$parser->match(Lexer::T_OPEN_PARENTHESIS);
|
$parser->match(Lexer::T_OPEN_PARENTHESIS);
|
||||||
|
|
||||||
$this->firstStringPrimary = $parser->StringPrimary();
|
$this->firstStringPrimary = $parser->StringPrimary();
|
||||||
$this->concatExpressions[] = $this->firstStringPrimary;
|
$this->concatExpressions[] = $this->firstStringPrimary;
|
||||||
|
|
||||||
$parser->match(Lexer::T_COMMA);
|
$parser->match(Lexer::T_COMMA);
|
||||||
|
|
||||||
$this->secondStringPrimary = $parser->StringPrimary();
|
$this->secondStringPrimary = $parser->StringPrimary();
|
||||||
$this->concatExpressions[] = $this->secondStringPrimary;
|
$this->concatExpressions[] = $this->secondStringPrimary;
|
||||||
|
|
||||||
while ($parser->getLexer()->isNextToken(Lexer::T_COMMA)) {
|
while ($parser->getLexer()->isNextToken(Lexer::T_COMMA)) {
|
||||||
$parser->match(Lexer::T_COMMA);
|
$parser->match(Lexer::T_COMMA);
|
||||||
$this->concatExpressions[] = $parser->StringPrimary();
|
$this->concatExpressions[] = $parser->StringPrimary();
|
||||||
}
|
}
|
||||||
|
|
||||||
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
|
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
|
||||||
|
@ -27,7 +27,7 @@ use Doctrine\ORM\Query\QueryException;
|
|||||||
/**
|
/**
|
||||||
* "DATE_ADD" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")"
|
* "DATE_ADD" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
|
@ -27,7 +27,7 @@ use Doctrine\ORM\Query\QueryException;
|
|||||||
/**
|
/**
|
||||||
* "IDENTITY" "(" SingleValuedAssociationPathExpression {"," string} ")"
|
* "IDENTITY" "(" SingleValuedAssociationPathExpression {"," string} ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.2
|
* @since 2.2
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -70,7 +70,7 @@ class IdentityFunction extends FunctionNode
|
|||||||
|
|
||||||
foreach ($assoc['joinColumns'] as $mapping) {
|
foreach ($assoc['joinColumns'] as $mapping) {
|
||||||
|
|
||||||
if($mapping['referencedColumnName'] === $field['columnName']) {
|
if ($mapping['referencedColumnName'] === $field['columnName']) {
|
||||||
$joinColumn = $mapping;
|
$joinColumn = $mapping;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "LENGTH" "(" StringPrimary ")"
|
* "LENGTH" "(" StringPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -42,7 +42,7 @@ class LengthFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
return $sqlWalker->getConnection()->getDatabasePlatform()->getLengthExpression(
|
return $sqlWalker->getConnection()->getDatabasePlatform()->getLengthExpression(
|
||||||
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "LOWER" "(" StringPrimary ")"
|
* "LOWER" "(" StringPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -42,7 +42,7 @@ class LowerFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
return $sqlWalker->getConnection()->getDatabasePlatform()->getLowerExpression(
|
return $sqlWalker->getConnection()->getDatabasePlatform()->getLowerExpression(
|
||||||
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "MOD" "(" SimpleArithmeticExpression "," SimpleArithmeticExpression ")"
|
* "MOD" "(" SimpleArithmeticExpression "," SimpleArithmeticExpression ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -50,8 +50,8 @@ class ModFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
return $sqlWalker->getConnection()->getDatabasePlatform()->getModExpression(
|
return $sqlWalker->getConnection()->getDatabasePlatform()->getModExpression(
|
||||||
$sqlWalker->walkSimpleArithmeticExpression($this->firstSimpleArithmeticExpression),
|
$sqlWalker->walkSimpleArithmeticExpression($this->firstSimpleArithmeticExpression),
|
||||||
$sqlWalker->walkSimpleArithmeticExpression($this->secondSimpleArithmeticExpression)
|
$sqlWalker->walkSimpleArithmeticExpression($this->secondSimpleArithmeticExpression)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ use Doctrine\DBAL\Platforms\AbstractPlatform;
|
|||||||
/**
|
/**
|
||||||
* "TRIM" "(" [["LEADING" | "TRAILING" | "BOTH"] [char] "FROM"] StringPrimary ")"
|
* "TRIM" "(" [["LEADING" | "TRAILING" | "BOTH"] [char] "FROM"] StringPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -105,8 +105,6 @@ class TrimFunction extends FunctionNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \Doctrine\ORM\Query\Parser $parser
|
|
||||||
*
|
|
||||||
* @return integer
|
* @return integer
|
||||||
*/
|
*/
|
||||||
private function getTrimMode()
|
private function getTrimMode()
|
||||||
|
@ -24,7 +24,7 @@ use Doctrine\ORM\Query\Lexer;
|
|||||||
/**
|
/**
|
||||||
* "UPPER" "(" StringPrimary ")"
|
* "UPPER" "(" StringPrimary ")"
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @link www.doctrine-project.org
|
* @link www.doctrine-project.org
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
@ -42,7 +42,7 @@ class UpperFunction extends FunctionNode
|
|||||||
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
|
||||||
{
|
{
|
||||||
return $sqlWalker->getConnection()->getDatabasePlatform()->getUpperExpression(
|
return $sqlWalker->getConnection()->getDatabasePlatform()->getUpperExpression(
|
||||||
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
$sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,21 +26,21 @@ namespace Doctrine\ORM\Query\AST;
|
|||||||
* @since 2.0
|
* @since 2.0
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||||
*/
|
*/
|
||||||
class SubselectIdentificationVariableDeclaration
|
class SubselectIdentificationVariableDeclaration
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var PathExpression
|
* @var PathExpression
|
||||||
*/
|
*/
|
||||||
public $associationPathExpression;
|
public $associationPathExpression;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $aliasIdentificationVariable;
|
public $aliasIdentificationVariable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param PathExpression $associationPathExpression
|
* @param PathExpression $associationPathExpression
|
||||||
* @param string $aliasIdentificationVariable
|
* @param string $aliasIdentificationVariable
|
||||||
*/
|
*/
|
||||||
|
@ -449,6 +449,7 @@ class Expr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Expr\Func($x . ' IN', (array) $y);
|
return new Expr\Func($x . ' IN', (array) $y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +457,7 @@ class Expr
|
|||||||
* Creates a NOT IN() expression with the given arguments.
|
* Creates a NOT IN() expression with the given arguments.
|
||||||
*
|
*
|
||||||
* @param string $x Field in string format to be restricted by NOT IN() function.
|
* @param string $x Field in string format to be restricted by NOT IN() function.
|
||||||
* @param mixed $y Argument to be used in NOT IN() function.
|
* @param mixed $y Argument to be used in NOT IN() function.
|
||||||
*
|
*
|
||||||
* @return Expr\Func
|
* @return Expr\Func
|
||||||
*/
|
*/
|
||||||
@ -469,6 +470,7 @@ class Expr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Expr\Func($x . ' NOT IN', (array) $y);
|
return new Expr\Func($x . ' NOT IN', (array) $y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,6 +552,7 @@ class Expr
|
|||||||
if (null !== $len) {
|
if (null !== $len) {
|
||||||
$args[] = $len;
|
$args[] = $len;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Expr\Func('SUBSTRING', $args);
|
return new Expr\Func('SUBSTRING', $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ class Lexer extends \Doctrine\Common\Lexer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected function getCatchablePatterns()
|
protected function getCatchablePatterns()
|
||||||
{
|
{
|
||||||
@ -139,7 +139,7 @@ class Lexer extends \Doctrine\Common\Lexer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected function getNonCatchablePatterns()
|
protected function getNonCatchablePatterns()
|
||||||
{
|
{
|
||||||
@ -147,7 +147,7 @@ class Lexer extends \Doctrine\Common\Lexer
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected function getType(&$value)
|
protected function getType(&$value)
|
||||||
{
|
{
|
||||||
|
@ -439,8 +439,8 @@ class Parser
|
|||||||
/**
|
/**
|
||||||
* Generates a new syntax error.
|
* Generates a new syntax error.
|
||||||
*
|
*
|
||||||
* @param string $expected Expected string.
|
* @param string $expected Expected string.
|
||||||
* @param array|null $token Got token.
|
* @param array|null $token Got token.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
@ -637,7 +637,7 @@ class Parser
|
|||||||
|
|
||||||
// If the namespace is not given then assumes the first FROM entity namespace
|
// If the namespace is not given then assumes the first FROM entity namespace
|
||||||
if (strpos($className, '\\') === false && ! class_exists($className) && strpos($fromClassName, '\\') !== false) {
|
if (strpos($className, '\\') === false && ! class_exists($className) && strpos($fromClassName, '\\') !== false) {
|
||||||
$namespace = substr($fromClassName, 0 , strrpos($fromClassName, '\\'));
|
$namespace = substr($fromClassName, 0, strrpos($fromClassName, '\\'));
|
||||||
$fqcn = $namespace . '\\' . $className;
|
$fqcn = $namespace . '\\' . $className;
|
||||||
|
|
||||||
if (class_exists($fqcn)) {
|
if (class_exists($fqcn)) {
|
||||||
@ -1611,7 +1611,6 @@ class Parser
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration
|
* SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration
|
||||||
*
|
*
|
||||||
* {Internal note: WARNING: Solution is harder than a bare implementation.
|
* {Internal note: WARNING: Solution is harder than a bare implementation.
|
||||||
@ -1960,10 +1959,9 @@ class Parser
|
|||||||
|
|
||||||
case ($lookahead === Lexer::T_INPUT_PARAMETER):
|
case ($lookahead === Lexer::T_INPUT_PARAMETER):
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case $this->isMathOperator($peek):
|
case $this->isMathOperator($peek):
|
||||||
// :param + u.value
|
// :param + u.value
|
||||||
return $this->SimpleArithmeticExpression();
|
return $this->SimpleArithmeticExpression();
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return $this->InputParameter();
|
return $this->InputParameter();
|
||||||
}
|
}
|
||||||
@ -2669,22 +2667,22 @@ class Parser
|
|||||||
switch ($this->lexer->lookahead['type']) {
|
switch ($this->lexer->lookahead['type']) {
|
||||||
case Lexer::T_STRING:
|
case Lexer::T_STRING:
|
||||||
$this->match(Lexer::T_STRING);
|
$this->match(Lexer::T_STRING);
|
||||||
return new AST\Literal(AST\Literal::STRING, $this->lexer->token['value']);
|
|
||||||
|
|
||||||
|
return new AST\Literal(AST\Literal::STRING, $this->lexer->token['value']);
|
||||||
case Lexer::T_INTEGER:
|
case Lexer::T_INTEGER:
|
||||||
case Lexer::T_FLOAT:
|
case Lexer::T_FLOAT:
|
||||||
$this->match(
|
$this->match(
|
||||||
$this->lexer->isNextToken(Lexer::T_INTEGER) ? Lexer::T_INTEGER : Lexer::T_FLOAT
|
$this->lexer->isNextToken(Lexer::T_INTEGER) ? Lexer::T_INTEGER : Lexer::T_FLOAT
|
||||||
);
|
);
|
||||||
return new AST\Literal(AST\Literal::NUMERIC, $this->lexer->token['value']);
|
|
||||||
|
|
||||||
|
return new AST\Literal(AST\Literal::NUMERIC, $this->lexer->token['value']);
|
||||||
case Lexer::T_TRUE:
|
case Lexer::T_TRUE:
|
||||||
case Lexer::T_FALSE:
|
case Lexer::T_FALSE:
|
||||||
$this->match(
|
$this->match(
|
||||||
$this->lexer->isNextToken(Lexer::T_TRUE) ? Lexer::T_TRUE : Lexer::T_FALSE
|
$this->lexer->isNextToken(Lexer::T_TRUE) ? Lexer::T_TRUE : Lexer::T_FALSE
|
||||||
);
|
);
|
||||||
return new AST\Literal(AST\Literal::BOOLEAN, $this->lexer->token['value']);
|
|
||||||
|
|
||||||
|
return new AST\Literal(AST\Literal::BOOLEAN, $this->lexer->token['value']);
|
||||||
default:
|
default:
|
||||||
$this->syntaxError('Literal');
|
$this->syntaxError('Literal');
|
||||||
}
|
}
|
||||||
|
@ -248,7 +248,7 @@ class QueryException extends \Doctrine\ORM\ORMException
|
|||||||
public static function instanceOfUnrelatedClass($className, $rootClass)
|
public static function instanceOfUnrelatedClass($className, $rootClass)
|
||||||
{
|
{
|
||||||
return new self("Cannot check if a child of '" . $rootClass . "' is instanceof '" . $className . "', " .
|
return new self("Cannot check if a child of '" . $rootClass . "' is instanceof '" . $className . "', " .
|
||||||
"inheritance hierarchy does not exists between these two classes.");
|
"inheritance hierarchy does not exists between these two classes.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -147,8 +147,8 @@ class QueryExpressionVisitor extends ExpressionVisitor
|
|||||||
|
|
||||||
$parameterName = str_replace('.', '_', $comparison->getField());
|
$parameterName = str_replace('.', '_', $comparison->getField());
|
||||||
|
|
||||||
foreach($this->parameters as $parameter) {
|
foreach ($this->parameters as $parameter) {
|
||||||
if($parameter->getName() === $parameterName) {
|
if ($parameter->getName() === $parameterName) {
|
||||||
$parameterName .= '_' . count($this->parameters);
|
$parameterName .= '_' . count($this->parameters);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -160,36 +160,37 @@ class QueryExpressionVisitor extends ExpressionVisitor
|
|||||||
switch ($comparison->getOperator()) {
|
switch ($comparison->getOperator()) {
|
||||||
case Comparison::IN:
|
case Comparison::IN:
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return $this->expr->in($field, $placeholder);
|
return $this->expr->in($field, $placeholder);
|
||||||
|
|
||||||
case Comparison::NIN:
|
case Comparison::NIN:
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return $this->expr->notIn($field, $placeholder);
|
return $this->expr->notIn($field, $placeholder);
|
||||||
|
|
||||||
case Comparison::EQ:
|
case Comparison::EQ:
|
||||||
case Comparison::IS:
|
case Comparison::IS:
|
||||||
if ($this->walkValue($comparison->getValue()) === null) {
|
if ($this->walkValue($comparison->getValue()) === null) {
|
||||||
return $this->expr->isNull($field);
|
return $this->expr->isNull($field);
|
||||||
}
|
}
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return $this->expr->eq($field, $placeholder);
|
return $this->expr->eq($field, $placeholder);
|
||||||
|
|
||||||
case Comparison::NEQ:
|
case Comparison::NEQ:
|
||||||
if ($this->walkValue($comparison->getValue()) === null) {
|
if ($this->walkValue($comparison->getValue()) === null) {
|
||||||
return $this->expr->isNotNull($field);
|
return $this->expr->isNotNull($field);
|
||||||
}
|
}
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return $this->expr->neq($field, $placeholder);
|
return $this->expr->neq($field, $placeholder);
|
||||||
|
|
||||||
case Comparison::CONTAINS:
|
case Comparison::CONTAINS:
|
||||||
$parameter->setValue('%' . $parameter->getValue() . '%', $parameter->getType());
|
$parameter->setValue('%' . $parameter->getValue() . '%', $parameter->getType());
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return $this->expr->like($field, $placeholder);
|
return $this->expr->like($field, $placeholder);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$operator = self::convertComparisonOperator($comparison->getOperator());
|
$operator = self::convertComparisonOperator($comparison->getOperator());
|
||||||
if ($operator) {
|
if ($operator) {
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
|
|
||||||
return new Expr\Comparison(
|
return new Expr\Comparison(
|
||||||
$field,
|
$field,
|
||||||
$operator,
|
$operator,
|
||||||
|
@ -171,8 +171,8 @@ class ResultSetMapping
|
|||||||
/**
|
/**
|
||||||
* Adds an entity result to this ResultSetMapping.
|
* Adds an entity result to this ResultSetMapping.
|
||||||
*
|
*
|
||||||
* @param string $class The class name of the entity.
|
* @param string $class The class name of the entity.
|
||||||
* @param string $alias The alias for the class. The alias must be unique among all entity
|
* @param string $alias The alias for the class. The alias must be unique among all entity
|
||||||
* results or joined entity results within this ResultSetMapping.
|
* results or joined entity results within this ResultSetMapping.
|
||||||
* @param string|null $resultAlias The result alias with which the entity result should be
|
* @param string|null $resultAlias The result alias with which the entity result should be
|
||||||
* placed in the result structure.
|
* placed in the result structure.
|
||||||
@ -389,8 +389,8 @@ class ResultSetMapping
|
|||||||
/**
|
/**
|
||||||
* Adds a metadata parameter mappings.
|
* Adds a metadata parameter mappings.
|
||||||
*
|
*
|
||||||
* @param mixed $parameter The parameter name in the SQL result set.
|
* @param mixed $parameter The parameter name in the SQL result set.
|
||||||
* @param string $attribute The metadata attribute.
|
* @param string $attribute The metadata attribute.
|
||||||
*/
|
*/
|
||||||
public function addMetadataParameterMapping($parameter, $attribute)
|
public function addMetadataParameterMapping($parameter, $attribute)
|
||||||
{
|
{
|
||||||
@ -551,11 +551,11 @@ class ResultSetMapping
|
|||||||
/**
|
/**
|
||||||
* Adds a meta column (foreign key or discriminator column) to the result set.
|
* Adds a meta column (foreign key or discriminator column) to the result set.
|
||||||
*
|
*
|
||||||
* @param string $alias The result alias with which the meta result should be placed in the result structure.
|
* @param string $alias The result alias with which the meta result should be placed in the result structure.
|
||||||
* @param string $columnName The name of the column in the SQL result set.
|
* @param string $columnName The name of the column in the SQL result set.
|
||||||
* @param string $fieldName The name of the field on the declaring class.
|
* @param string $fieldName The name of the field on the declaring class.
|
||||||
* @param bool $isIdentifierColumn
|
* @param bool $isIdentifierColumn
|
||||||
* @param string $type The column type
|
* @param string $type The column type
|
||||||
*
|
*
|
||||||
* @return ResultSetMapping This ResultSetMapping instance.
|
* @return ResultSetMapping This ResultSetMapping instance.
|
||||||
*
|
*
|
||||||
|
@ -367,7 +367,7 @@ class ResultSetMappingBuilder extends ResultSetMapping
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the entity result mapping of the results of native SQL queries to the result set.
|
* Adds the entity result mapping of the results of native SQL queries to the result set.
|
||||||
*
|
*
|
||||||
* @param ClassMetadataInfo $classMetadata
|
* @param ClassMetadataInfo $classMetadata
|
||||||
* @param array $entityMapping
|
* @param array $entityMapping
|
||||||
* @param string $alias
|
* @param string $alias
|
||||||
@ -408,7 +408,7 @@ class ResultSetMappingBuilder extends ResultSetMapping
|
|||||||
$this->addFieldResult($alias, $field['column'], $fieldName, $classMetadata->name);
|
$this->addFieldResult($alias, $field['column'], $fieldName, $classMetadata->name);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if( ! isset($classMetadata->fieldMappings[$fieldName])) {
|
if ( ! isset($classMetadata->fieldMappings[$fieldName])) {
|
||||||
throw new \InvalidArgumentException("Entity '".$classMetadata->name."' has no field '".$fieldName."'. ");
|
throw new \InvalidArgumentException("Entity '".$classMetadata->name."' has no field '".$fieldName."'. ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -917,7 +917,7 @@ class SqlWalker implements TreeWalker
|
|||||||
$relation = $this->queryComponents[$joinedDqlAlias]['relation'];
|
$relation = $this->queryComponents[$joinedDqlAlias]['relation'];
|
||||||
$targetClass = $this->em->getClassMetadata($relation['targetEntity']);
|
$targetClass = $this->em->getClassMetadata($relation['targetEntity']);
|
||||||
$sourceClass = $this->em->getClassMetadata($relation['sourceEntity']);
|
$sourceClass = $this->em->getClassMetadata($relation['sourceEntity']);
|
||||||
$targetTableName = $this->quoteStrategy->getTableName($targetClass,$this->platform);
|
$targetTableName = $this->quoteStrategy->getTableName($targetClass, $this->platform);
|
||||||
|
|
||||||
$targetTableAlias = $this->getSQLTableAlias($targetClass->getTableName(), $joinedDqlAlias);
|
$targetTableAlias = $this->getSQLTableAlias($targetClass->getTableName(), $joinedDqlAlias);
|
||||||
$sourceTableAlias = $this->getSQLTableAlias($sourceClass->getTableName(), $associationPathExpression->identificationVariable);
|
$sourceTableAlias = $this->getSQLTableAlias($sourceClass->getTableName(), $associationPathExpression->identificationVariable);
|
||||||
|
@ -336,7 +336,7 @@ abstract class TreeWalkerAdapter implements TreeWalker
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function walkInstanceOfExpression($instanceOfExpr)
|
public function walkInstanceOfExpression($instanceOfExpr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,7 +429,7 @@ class TreeWalkerChain implements TreeWalker
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function walkInstanceOfExpression($instanceOfExpr)
|
public function walkInstanceOfExpression($instanceOfExpr)
|
||||||
{
|
{
|
||||||
foreach ($this->_walkers as $walker) {
|
foreach ($this->_walkers as $walker) {
|
||||||
$walker->walkInstanceOfExpression($instanceOfExpr);
|
$walker->walkInstanceOfExpression($instanceOfExpr);
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
namespace Doctrine\ORM\Query;
|
namespace Doctrine\ORM\Query;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
||||||
{
|
{
|
||||||
@ -51,7 +51,7 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function rewind()
|
public function rewind()
|
||||||
{
|
{
|
||||||
return reset($this->walkers);
|
return reset($this->walkers);
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function current()
|
public function current()
|
||||||
{
|
{
|
||||||
return $this->offsetGet(key($this->walkers));
|
return $this->offsetGet(key($this->walkers));
|
||||||
}
|
}
|
||||||
@ -67,7 +67,7 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function key()
|
public function key()
|
||||||
{
|
{
|
||||||
return key($this->walkers);
|
return key($this->walkers);
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function next()
|
public function next()
|
||||||
{
|
{
|
||||||
next($this->walkers);
|
next($this->walkers);
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
function valid()
|
public function valid()
|
||||||
{
|
{
|
||||||
return key($this->walkers) !== null;
|
return key($this->walkers) !== null;
|
||||||
}
|
}
|
||||||
@ -135,4 +135,4 @@ class TreeWalkerChainIterator implements \Iterator, \ArrayAccess
|
|||||||
unset($this->walkers[$offset]);
|
unset($this->walkers[$offset]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,10 +38,10 @@ class AttachEntityListenersListener
|
|||||||
/**
|
/**
|
||||||
* Adds a entity listener for a specific entity.
|
* Adds a entity listener for a specific entity.
|
||||||
*
|
*
|
||||||
* @param string $entityClass The entity to attach the listener.
|
* @param string $entityClass The entity to attach the listener.
|
||||||
* @param string $listenerClass The listener class.
|
* @param string $listenerClass The listener class.
|
||||||
* @param string $eventName The entity lifecycle event.
|
* @param string $eventName The entity lifecycle event.
|
||||||
* @param string $listenerCallback|null The listener callback method or NULL to use $eventName.
|
* @param string|null $listenerCallback The listener callback method or NULL to use $eventName.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -47,7 +47,7 @@ class CollectionRegionCommand extends Command
|
|||||||
->addArgument('association', InputArgument::OPTIONAL, 'The association collection name.')
|
->addArgument('association', InputArgument::OPTIONAL, 'The association collection name.')
|
||||||
->addArgument('owner-id', InputArgument::OPTIONAL, 'The owner identifier.')
|
->addArgument('owner-id', InputArgument::OPTIONAL, 'The owner identifier.')
|
||||||
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.')
|
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.')
|
||||||
->addOption('flush', null, InputOption::VALUE_NONE,'If defined, all cache entries will be flushed.');
|
->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.');
|
||||||
|
|
||||||
|
|
||||||
$this->setHelp(<<<EOT
|
$this->setHelp(<<<EOT
|
||||||
@ -131,4 +131,4 @@ EOT
|
|||||||
$output->writeln(sprintf('Clearing second-level cache for collection <info>"%s#%s"</info>', $ownerClass, $assoc));
|
$output->writeln(sprintf('Clearing second-level cache for collection <info>"%s#%s"</info>', $ownerClass, $assoc));
|
||||||
$cache->evictCollectionRegion($ownerClass, $assoc);
|
$cache->evictCollectionRegion($ownerClass, $assoc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ class EntityRegionCommand extends Command
|
|||||||
->addArgument('entity-class', InputArgument::OPTIONAL, 'The entity name.')
|
->addArgument('entity-class', InputArgument::OPTIONAL, 'The entity name.')
|
||||||
->addArgument('entity-id', InputArgument::OPTIONAL, 'The entity identifier.')
|
->addArgument('entity-id', InputArgument::OPTIONAL, 'The entity identifier.')
|
||||||
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.')
|
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.')
|
||||||
->addOption('flush', null, InputOption::VALUE_NONE,'If defined, all cache entries will be flushed.');
|
->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.');
|
||||||
|
|
||||||
|
|
||||||
$this->setHelp(<<<EOT
|
$this->setHelp(<<<EOT
|
||||||
@ -129,4 +129,4 @@ EOT
|
|||||||
$output->writeln(sprintf('Clearing second-level cache for entity <info>"%s"</info>', $entityClass));
|
$output->writeln(sprintf('Clearing second-level cache for entity <info>"%s"</info>', $entityClass));
|
||||||
$cache->evictEntityRegion($entityClass);
|
$cache->evictEntityRegion($entityClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ class QueryRegionCommand extends Command
|
|||||||
->setDescription('Clear a second-level cache query region.')
|
->setDescription('Clear a second-level cache query region.')
|
||||||
->addArgument('region-name', InputArgument::OPTIONAL, 'The query region to clear.')
|
->addArgument('region-name', InputArgument::OPTIONAL, 'The query region to clear.')
|
||||||
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all query regions will be deleted/invalidated.')
|
->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all query regions will be deleted/invalidated.')
|
||||||
->addOption('flush', null, InputOption::VALUE_NONE,'If defined, all cache entries will be flushed.');
|
->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.');
|
||||||
|
|
||||||
|
|
||||||
$this->setHelp(<<<EOT
|
$this->setHelp(<<<EOT
|
||||||
@ -121,4 +121,4 @@ EOT
|
|||||||
$output->writeln(sprintf('Clearing second-level cache query region named <info>"%s"</info>', $name));
|
$output->writeln(sprintf('Clearing second-level cache query region named <info>"%s"</info>', $name));
|
||||||
$cache->evictQueryRegion($name);
|
$cache->evictQueryRegion($name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,12 +110,12 @@ EOT
|
|||||||
|
|
||||||
if ($numRepositories) {
|
if ($numRepositories) {
|
||||||
// Outputting information message
|
// Outputting information message
|
||||||
$output->writeln(PHP_EOL . sprintf('Repository classes generated to "<info>%s</INFO>"', $destPath) );
|
$output->writeln(PHP_EOL . sprintf('Repository classes generated to "<info>%s</INFO>"', $destPath));
|
||||||
} else {
|
} else {
|
||||||
$output->writeln('No Repository classes were found to be processed.' );
|
$output->writeln('No Repository classes were found to be processed.');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$output->writeln('No Metadata Classes to process.' );
|
$output->writeln('No Metadata Classes to process.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ The <info>%command.name%</info> shows basic information about which
|
|||||||
entities exist and possibly if their mapping information contains errors or
|
entities exist and possibly if their mapping information contains errors or
|
||||||
not.
|
not.
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -257,7 +257,7 @@ EOT
|
|||||||
/**
|
/**
|
||||||
* Format the association mappings
|
* Format the association mappings
|
||||||
*
|
*
|
||||||
* @param array
|
* @param array $propertyMappings
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
|
@ -65,6 +65,7 @@ abstract class AbstractCommand extends Command
|
|||||||
return $this->executeSchemaCommand($input, $output, $tool, $metadatas);
|
return $this->executeSchemaCommand($input, $output, $tool, $metadatas);
|
||||||
} else {
|
} else {
|
||||||
$output->writeln('No Metadata Classes to process.');
|
$output->writeln('No Metadata Classes to process.');
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,9 +126,9 @@ EOT
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($force) {
|
if ($force) {
|
||||||
if ($dumpSql) {
|
if ($dumpSql) {
|
||||||
$output->writeln('');
|
$output->writeln('');
|
||||||
}
|
}
|
||||||
$output->writeln('Updating database schema...');
|
$output->writeln('Updating database schema...');
|
||||||
$schemaTool->updateSchema($metadatas, $saveMode);
|
$schemaTool->updateSchema($metadatas, $saveMode);
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class ConsoleRunner
|
|||||||
* optional commands.
|
* optional commands.
|
||||||
*
|
*
|
||||||
* @param \Symfony\Component\Console\Helper\HelperSet $helperSet
|
* @param \Symfony\Component\Console\Helper\HelperSet $helperSet
|
||||||
* @param array $commands
|
* @param array $commands
|
||||||
*
|
*
|
||||||
* @return \Symfony\Component\Console\Application
|
* @return \Symfony\Component\Console\Application
|
||||||
*/
|
*/
|
||||||
|
@ -81,6 +81,7 @@ class DebugUnitOfWorkListener
|
|||||||
$fh = fopen($this->file, "x+");
|
$fh = fopen($this->file, "x+");
|
||||||
if (count($identityMap) == 0) {
|
if (count($identityMap) == 0) {
|
||||||
fwrite($fh, "Flush Operation [".$this->context."] - Empty identity map.\n");
|
fwrite($fh, "Flush Operation [".$this->context."] - Empty identity map.\n");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1100,6 +1100,7 @@ public function __construct(<params>)
|
|||||||
}
|
}
|
||||||
$annotations[] = '@' . $this->annotationsPrefix . $constraintName . '(name="' . $name . '", columns={' . implode(', ', $columns) . '})';
|
$annotations[] = '@' . $this->annotationsPrefix . $constraintName . '(name="' . $name . '", columns={' . implode(', ', $columns) . '})';
|
||||||
}
|
}
|
||||||
|
|
||||||
return implode(', ', $annotations);
|
return implode(', ', $annotations);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1241,7 +1242,7 @@ public function __construct(<params>)
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($joinColumns as $joinColumn) {
|
foreach ($joinColumns as $joinColumn) {
|
||||||
if(isset($joinColumn['nullable']) && !$joinColumn['nullable']) {
|
if (isset($joinColumn['nullable']) && !$joinColumn['nullable']) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1811,12 +1812,14 @@ public function __construct(<params>)
|
|||||||
* Exports (nested) option elements.
|
* Exports (nested) option elements.
|
||||||
*
|
*
|
||||||
* @param array $options
|
* @param array $options
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function exportTableOptions(array $options)
|
private function exportTableOptions(array $options)
|
||||||
{
|
{
|
||||||
$optionsStr = array();
|
$optionsStr = array();
|
||||||
|
|
||||||
foreach($options as $name => $option) {
|
foreach ($options as $name => $option) {
|
||||||
if (is_array($option)) {
|
if (is_array($option)) {
|
||||||
$optionsStr[] = '"' . $name . '"={' . $this->exportTableOptions($option) . '}';
|
$optionsStr[] = '"' . $name . '"={' . $this->exportTableOptions($option) . '}';
|
||||||
} else {
|
} else {
|
||||||
|
@ -135,7 +135,7 @@ abstract class AbstractExporter
|
|||||||
|
|
||||||
foreach ($this->_metadata as $metadata) {
|
foreach ($this->_metadata as $metadata) {
|
||||||
// In case output is returned, write it to a file, skip otherwise
|
// In case output is returned, write it to a file, skip otherwise
|
||||||
if($output = $this->exportClassMetadata($metadata)){
|
if ($output = $this->exportClassMetadata($metadata)) {
|
||||||
$path = $this->_generateOutputPath($metadata);
|
$path = $this->_generateOutputPath($metadata);
|
||||||
$dir = dirname($path);
|
$dir = dirname($path);
|
||||||
if ( ! is_dir($dir)) {
|
if ( ! is_dir($dir)) {
|
||||||
|
@ -108,7 +108,7 @@ class XmlExporter extends AbstractExporter
|
|||||||
$indexXml = $indexesXml->addChild('index');
|
$indexXml = $indexesXml->addChild('index');
|
||||||
$indexXml->addAttribute('name', $name);
|
$indexXml->addAttribute('name', $name);
|
||||||
$indexXml->addAttribute('columns', implode(',', $index['columns']));
|
$indexXml->addAttribute('columns', implode(',', $index['columns']));
|
||||||
if(isset($index['flags'])) {
|
if (isset($index['flags'])) {
|
||||||
$indexXml->addAttribute('flags', implode(',', $index['flags']));
|
$indexXml->addAttribute('flags', implode(',', $index['flags']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -396,7 +396,7 @@ class XmlExporter extends AbstractExporter
|
|||||||
* Exports (nested) option elements.
|
* Exports (nested) option elements.
|
||||||
*
|
*
|
||||||
* @param \SimpleXMLElement $parentXml
|
* @param \SimpleXMLElement $parentXml
|
||||||
* @param array $options
|
* @param array $options
|
||||||
*/
|
*/
|
||||||
private function exportTableOptions(\SimpleXMLElement $parentXml, array $options)
|
private function exportTableOptions(\SimpleXMLElement $parentXml, array $options)
|
||||||
{
|
{
|
||||||
|
@ -110,6 +110,7 @@ class Paginator implements \Countable, \IteratorAggregate
|
|||||||
public function setUseOutputWalkers($useOutputWalkers)
|
public function setUseOutputWalkers($useOutputWalkers)
|
||||||
{
|
{
|
||||||
$this->useOutputWalkers = $useOutputWalkers;
|
$this->useOutputWalkers = $useOutputWalkers;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,7 +122,7 @@ class Paginator implements \Countable, \IteratorAggregate
|
|||||||
if ($this->count === null) {
|
if ($this->count === null) {
|
||||||
try {
|
try {
|
||||||
$this->count = array_sum(array_map('current', $this->getCountQuery()->getScalarResult()));
|
$this->count = array_sum(array_map('current', $this->getCountQuery()->getScalarResult()));
|
||||||
} catch(NoResultException $e) {
|
} catch (NoResultException $e) {
|
||||||
$this->count = 0;
|
$this->count = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -216,7 +217,7 @@ class Paginator implements \Countable, \IteratorAggregate
|
|||||||
/**
|
/**
|
||||||
* Appends a custom tree walker to the tree walkers hint.
|
* Appends a custom tree walker to the tree walkers hint.
|
||||||
*
|
*
|
||||||
* @param Query $query
|
* @param Query $query
|
||||||
* @param string $walkerClass
|
* @param string $walkerClass
|
||||||
*/
|
*/
|
||||||
private function appendTreeWalker(Query $query, $walkerClass)
|
private function appendTreeWalker(Query $query, $walkerClass)
|
||||||
@ -267,7 +268,7 @@ class Paginator implements \Countable, \IteratorAggregate
|
|||||||
foreach ($parameters as $key => $parameter) {
|
foreach ($parameters as $key => $parameter) {
|
||||||
$parameterName = $parameter->getName();
|
$parameterName = $parameter->getName();
|
||||||
|
|
||||||
if( ! (isset($parameterMappings[$parameterName]) || array_key_exists($parameterName, $parameterMappings))) {
|
if ( ! (isset($parameterMappings[$parameterName]) || array_key_exists($parameterName, $parameterMappings))) {
|
||||||
unset($parameters[$key]);
|
unset($parameters[$key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,7 @@ class SchemaTool
|
|||||||
public function getCreateSchemaSql(array $classes)
|
public function getCreateSchemaSql(array $classes)
|
||||||
{
|
{
|
||||||
$schema = $this->getSchemaFromMetadata($classes);
|
$schema = $this->getSchemaFromMetadata($classes);
|
||||||
|
|
||||||
return $schema->toSql($this->platform);
|
return $schema->toSql($this->platform);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,11 +279,11 @@ class SchemaTool
|
|||||||
|
|
||||||
if (isset($class->table['indexes'])) {
|
if (isset($class->table['indexes'])) {
|
||||||
foreach ($class->table['indexes'] as $indexName => $indexData) {
|
foreach ($class->table['indexes'] as $indexName => $indexData) {
|
||||||
if( ! isset($indexData['flags'])) {
|
if ( ! isset($indexData['flags'])) {
|
||||||
$indexData['flags'] = array();
|
$indexData['flags'] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->addIndex($indexData['columns'], is_numeric($indexName) ? null : $indexName, (array)$indexData['flags'], isset($indexData['options']) ? $indexData['options'] : array());
|
$table->addIndex($indexData['columns'], is_numeric($indexName) ? null : $indexName, (array) $indexData['flags'], isset($indexData['options']) ? $indexData['options'] : array());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -622,7 +623,8 @@ class SchemaTool
|
|||||||
&$primaryKeyColumns,
|
&$primaryKeyColumns,
|
||||||
&$addedFks,
|
&$addedFks,
|
||||||
&$blacklistedFks
|
&$blacklistedFks
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
$localColumns = array();
|
$localColumns = array();
|
||||||
$foreignColumns = array();
|
$foreignColumns = array();
|
||||||
$fkOptions = array();
|
$fkOptions = array();
|
||||||
|
@ -97,6 +97,7 @@ class SchemaValidator
|
|||||||
foreach ($class->associationMappings as $fieldName => $assoc) {
|
foreach ($class->associationMappings as $fieldName => $assoc) {
|
||||||
if (!class_exists($assoc['targetEntity']) || $cmf->isTransient($assoc['targetEntity'])) {
|
if (!class_exists($assoc['targetEntity']) || $cmf->isTransient($assoc['targetEntity'])) {
|
||||||
$ce[] = "The target entity '" . $assoc['targetEntity'] . "' specified on " . $class->name . '#' . $fieldName . ' is unknown or not an entity.';
|
$ce[] = "The target entity '" . $assoc['targetEntity'] . "' specified on " . $class->name . '#' . $fieldName . ' is unknown or not an entity.';
|
||||||
|
|
||||||
return $ce;
|
return $ce;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,13 +155,13 @@ class SchemaValidator
|
|||||||
// Verify inverse side/owning side match each other
|
// Verify inverse side/owning side match each other
|
||||||
if (array_key_exists($assoc['inversedBy'], $targetMetadata->associationMappings)) {
|
if (array_key_exists($assoc['inversedBy'], $targetMetadata->associationMappings)) {
|
||||||
$targetAssoc = $targetMetadata->associationMappings[$assoc['inversedBy']];
|
$targetAssoc = $targetMetadata->associationMappings[$assoc['inversedBy']];
|
||||||
if ($assoc['type'] == ClassMetadataInfo::ONE_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_ONE){
|
if ($assoc['type'] == ClassMetadataInfo::ONE_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_ONE) {
|
||||||
$ce[] = "If association " . $class->name . "#" . $fieldName . " is one-to-one, then the inversed " .
|
$ce[] = "If association " . $class->name . "#" . $fieldName . " is one-to-one, then the inversed " .
|
||||||
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-one as well.";
|
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-one as well.";
|
||||||
} elseif ($assoc['type'] == ClassMetadataInfo::MANY_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_MANY){
|
} elseif ($assoc['type'] == ClassMetadataInfo::MANY_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_MANY) {
|
||||||
$ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-one, then the inversed " .
|
$ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-one, then the inversed " .
|
||||||
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-many.";
|
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-many.";
|
||||||
} elseif ($assoc['type'] == ClassMetadataInfo::MANY_TO_MANY && $targetAssoc['type'] !== ClassMetadataInfo::MANY_TO_MANY){
|
} elseif ($assoc['type'] == ClassMetadataInfo::MANY_TO_MANY && $targetAssoc['type'] !== ClassMetadataInfo::MANY_TO_MANY) {
|
||||||
$ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-many, then the inversed " .
|
$ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-many, then the inversed " .
|
||||||
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be many-to-many as well.";
|
"side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be many-to-many as well.";
|
||||||
}
|
}
|
||||||
|
@ -555,8 +555,8 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
*
|
*
|
||||||
* @internal Don't call from the outside.
|
* @internal Don't call from the outside.
|
||||||
*
|
*
|
||||||
* @param ClassMetadata $class The class descriptor of the entity.
|
* @param ClassMetadata $class The class descriptor of the entity.
|
||||||
* @param object $entity The entity for which to compute the changes.
|
* @param object $entity The entity for which to compute the changes.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@ -800,8 +800,8 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
/**
|
/**
|
||||||
* Computes the changes of an association.
|
* Computes the changes of an association.
|
||||||
*
|
*
|
||||||
* @param array $assoc The association mapping.
|
* @param array $assoc The association mapping.
|
||||||
* @param mixed $value The value of the association.
|
* @param mixed $value The value of the association.
|
||||||
*
|
*
|
||||||
* @throws ORMInvalidArgumentException
|
* @throws ORMInvalidArgumentException
|
||||||
* @throws ORMException
|
* @throws ORMException
|
||||||
@ -871,7 +871,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \Doctrine\ORM\Mapping\ClassMetadata $class
|
* @param \Doctrine\ORM\Mapping\ClassMetadata $class
|
||||||
* @param object $entity
|
* @param object $entity
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@ -1391,7 +1391,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
*
|
*
|
||||||
* @ignore
|
* @ignore
|
||||||
*
|
*
|
||||||
* @param object $entity The entity to register.
|
* @param object $entity The entity to register.
|
||||||
*
|
*
|
||||||
* @return boolean TRUE if the registration was successful, FALSE if the identity of
|
* @return boolean TRUE if the registration was successful, FALSE if the identity of
|
||||||
* the entity in question is already managed.
|
* the entity in question is already managed.
|
||||||
@ -3224,7 +3224,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
*/
|
*/
|
||||||
private static function objToStr($obj)
|
private static function objToStr($obj)
|
||||||
{
|
{
|
||||||
return method_exists($obj, '__toString') ? (string)$obj : get_class($obj).'@'.spl_object_hash($obj);
|
return method_exists($obj, '__toString') ? (string) $obj : get_class($obj).'@'.spl_object_hash($obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user