Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
dd1afc7e
Commit
dd1afc7e
authored
Jan 15, 2009
by
romanb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hydrator cleanup and 2 new methods for ClassMetadata
parent
4e62d4a9
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
177 additions
and
1106 deletions
+177
-1106
MySqlPlatform.php
lib/Doctrine/DBAL/Platforms/MySqlPlatform.php
+1
-1
Collection.php
lib/Doctrine/ORM/Collection.php
+5
-2
Entity.php
lib/Doctrine/ORM/Entity.php
+1
-0
EntityManager.php
lib/Doctrine/ORM/EntityManager.php
+3
-1
AbstractHydrator.php
lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php
+4
-4
ArrayDriver.php
lib/Doctrine/ORM/Internal/Hydration/ArrayDriver.php
+1
-0
ArrayHydrator.php
lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php
+2
-2
ObjectDriver.php
lib/Doctrine/ORM/Internal/Hydration/ObjectDriver.php
+1
-0
ObjectHydrator.php
lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php
+32
-27
ScalarHydrator.php
lib/Doctrine/ORM/Internal/Hydration/ScalarHydrator.php
+1
-1
SingleScalarHydrator.php
lib/Doctrine/ORM/Internal/Hydration/SingleScalarHydrator.php
+1
-1
StandardHydrator.php
lib/Doctrine/ORM/Internal/Hydration/StandardHydrator.php
+1
-0
Null.php
lib/Doctrine/ORM/Internal/Null.php
+1
-0
ClassMetadata.php
lib/Doctrine/ORM/Mapping/ClassMetadata.php
+26
-0
Query.php
lib/Doctrine/ORM/Query.php
+2
-2
UnitOfWork.php
lib/Doctrine/ORM/UnitOfWork.php
+0
-1
BasicCRUDTest.php
tests/Orm/Functional/BasicCRUDTest.php
+1
-1
AllTests.php
tests/Orm/Hydration/AllTests.php
+0
-1
ArrayHydratorTest.php
tests/Orm/Hydration/ArrayHydratorTest.php
+8
-8
BasicHydrationTest.php
tests/Orm/Hydration/BasicHydrationTest.php
+0
-1038
HydrationTest.php
tests/Orm/Hydration/HydrationTest.php
+1
-4
ObjectHydratorTest.php
tests/Orm/Hydration/ObjectHydratorTest.php
+81
-8
ScalarHydratorTest.php
tests/Orm/Hydration/ScalarHydratorTest.php
+1
-1
SingleScalarHydratorTest.php
tests/Orm/Hydration/SingleScalarHydratorTest.php
+3
-3
No files found.
lib/Doctrine/DBAL/Platforms/MySqlPlatform.php
View file @
dd1afc7e
...
...
@@ -19,7 +19,7 @@
* <http://www.phpdoctrine.org>.
*/
#namespace Doctrine
::DBAL::
Platforms;
#namespace Doctrine
\DBAL\
Platforms;
/**
* The MySqlPlatform provides the behavior, features and SQL dialect of the
...
...
lib/Doctrine/ORM/Collection.php
View file @
dd1afc7e
...
...
@@ -104,6 +104,8 @@ final class Doctrine_ORM_Collection extends Doctrine_Common_Collections_Collecti
*/
private
$_hydrationFlag
;
private
$_ownerClass
;
/**
* Creates a new persistent collection.
*/
...
...
@@ -111,8 +113,9 @@ final class Doctrine_ORM_Collection extends Doctrine_Common_Collections_Collecti
{
$this
->
_entityBaseType
=
$entityBaseType
;
$this
->
_em
=
$em
;
$this
->
_ownerClass
=
$em
->
getClassMetadata
(
$entityBaseType
);
if
(
$keyField
!==
null
)
{
if
(
!
$this
->
_
em
->
getClassMetadata
(
$entityBaseType
)
->
hasField
(
$keyField
))
{
if
(
!
$this
->
_
ownerClass
->
hasField
(
$keyField
))
{
throw
new
Doctrine_Exception
(
"Invalid field '
$keyField
' can't be uses as key."
);
}
$this
->
_keyField
=
$keyField
;
...
...
@@ -227,7 +230,7 @@ final class Doctrine_ORM_Collection extends Doctrine_Common_Collections_Collecti
if
(
$this
->
_hydrationFlag
)
{
if
(
$this
->
_backRefFieldName
)
{
// set back reference to owner
$this
->
_
em
->
getClassMetadata
(
$this
->
_entityBaseType
)
->
getReflectionProperty
(
$this
->
_
ownerClass
->
getReflectionProperty
(
$this
->
_backRefFieldName
)
->
setValue
(
$value
,
$this
->
_owner
);
}
}
else
{
...
...
lib/Doctrine/ORM/Entity.php
View file @
dd1afc7e
...
...
@@ -29,6 +29,7 @@
* @link www.doctrine-project.org
* @since 2.0
* @version $Revision: 4342 $
* @DEPRECATED
*/
interface
Doctrine_ORM_Entity
{}
lib/Doctrine/ORM/EntityManager.php
View file @
dd1afc7e
...
...
@@ -594,9 +594,11 @@ class Doctrine_ORM_EntityManager
$this
->
_hydrators
[
$hydrationMode
]
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
);
break
;
case
Doctrine_ORM_Query
::
HYDRATE_SCALAR
:
case
Doctrine_ORM_Query
::
HYDRATE_SINGLE_SCALAR
:
$this
->
_hydrators
[
$hydrationMode
]
=
new
Doctrine_ORM_Internal_Hydration_ScalarHydrator
(
$this
);
break
;
case
Doctrine_ORM_Query
::
HYDRATE_SINGLE_SCALAR
:
$this
->
_hydrators
[
$hydrationMode
]
=
new
Doctrine_ORM_Internal_Hydration_SingleScalarHydrator
(
$this
);
break
;
case
Doctrine_ORM_Query
::
HYDRATE_NONE
:
$this
->
_hydrators
[
$hydrationMode
]
=
new
Doctrine_ORM_Internal_Hydration_NoneHydrator
(
$this
);
break
;
...
...
lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php
View file @
dd1afc7e
...
...
@@ -38,11 +38,11 @@ abstract class Doctrine_ORM_Internal_Hydration_AbstractHydrator
*
* Two dimensional array containing the map for query aliases. Main keys are component aliases.
*
*
table Table
object associated with given alias.
*
metadata ClassMetadata
object associated with given alias.
* relation Relation object owned by the parent.
* parent Alias of the parent.
* agg Aggregates of this component.
* map Name of the column / aggregate value this component is mapped to a collection.
* map Name of the column / aggregate value this component is mapped to
in
a collection.
*/
protected
$_queryComponents
=
array
();
...
...
@@ -100,7 +100,7 @@ abstract class Doctrine_ORM_Internal_Hydration_AbstractHydrator
{
$this
->
_stmt
=
$stmt
;
$this
->
_prepare
(
$parserResult
);
$result
=
$this
->
_hydrateAll
(
$parserResult
);
$result
=
$this
->
_hydrateAll
();
$this
->
_cleanup
();
return
$result
;
}
...
...
@@ -164,7 +164,7 @@ abstract class Doctrine_ORM_Internal_Hydration_AbstractHydrator
*
* @param object $parserResult
*/
abstract
protected
function
_hydrateAll
(
$parserResult
);
abstract
protected
function
_hydrateAll
();
/**
* Gets the row container used during row-by-row hydration through {@link iterate()}.
...
...
lib/Doctrine/ORM/Internal/Hydration/ArrayDriver.php
View file @
dd1afc7e
...
...
@@ -30,6 +30,7 @@
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @author Roman Borschel <roman@code-factory.org>
* @DEPRECATED
*/
class
Doctrine_ORM_Internal_Hydration_ArrayDriver
{
...
...
lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php
View file @
dd1afc7e
...
...
@@ -39,7 +39,7 @@ class Doctrine_ORM_Internal_Hydration_ArrayHydrator extends Doctrine_ORM_Interna
}
/** @override */
protected
function
_hydrateAll
(
$parserResult
)
protected
function
_hydrateAll
()
{
$s
=
microtime
(
true
);
...
...
@@ -61,7 +61,7 @@ class Doctrine_ORM_Internal_Hydration_ArrayHydrator extends Doctrine_ORM_Interna
// 1) Initialize
$id
=
$this
->
_idTemplate
;
// initialize the id-memory
$nonemptyComponents
=
array
();
$rowData
=
parent
::
_gatherRowData
(
$data
,
$cache
,
$id
,
$nonemptyComponents
);
$rowData
=
$this
->
_gatherRowData
(
$data
,
$cache
,
$id
,
$nonemptyComponents
);
$rootAlias
=
$this
->
_rootAlias
;
// 2) Hydrate the data of the root entity from the current row
...
...
lib/Doctrine/ORM/Internal/Hydration/ObjectDriver.php
View file @
dd1afc7e
...
...
@@ -31,6 +31,7 @@
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @author Roman Borschel <roman@code-factory.org>
* @internal All the methods in this class are performance-sentitive.
* @DEPRECATED
*/
class
Doctrine_ORM_Internal_Hydration_ObjectDriver
{
...
...
lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php
View file @
dd1afc7e
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of ObjectHydrator
...
...
@@ -11,7 +8,7 @@
*/
class
Doctrine_ORM_Internal_Hydration_ObjectHydrator
extends
Doctrine_ORM_Internal_Hydration_AbstractHydrator
{
/** Collections initialized by the
drive
r */
/** Collections initialized by the
hydrato
r */
private
$_collections
=
array
();
/** Memory for initialized relations */
private
$_initializedRelations
=
array
();
...
...
@@ -42,8 +39,12 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
}
}
/** @override */
protected
function
_hydrateAll
(
$parserResult
)
/**
* {@inheritdoc}
*
* @override
*/
protected
function
_hydrateAll
()
{
$s
=
microtime
(
true
);
...
...
@@ -54,7 +55,6 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
}
$cache
=
array
();
// Process result set
while
(
$data
=
$this
->
_stmt
->
fetch
(
PDO
::
FETCH_ASSOC
))
{
$this
->
_hydrateRow
(
$data
,
$cache
,
$result
);
}
...
...
@@ -111,7 +111,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
}
}
private
function
get
Element
Collection
(
$component
)
private
function
getCollection
(
$component
)
{
$coll
=
new
Doctrine_ORM_Collection
(
$this
->
_em
,
$component
);
$this
->
_collections
[]
=
$coll
;
...
...
@@ -125,7 +125,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
if
(
!
isset
(
$this
->
_initializedRelations
[
$oid
][
$name
]))
{
$relation
=
$classMetadata
->
getAssociationMapping
(
$name
);
$relatedClass
=
$this
->
_em
->
getClassMetadata
(
$relation
->
getTargetEntityName
());
$coll
=
$this
->
get
Element
Collection
(
$relatedClass
->
getClassName
());
$coll
=
$this
->
getCollection
(
$relatedClass
->
getClassName
());
$coll
->
_setOwner
(
$entity
,
$relation
);
$coll
->
_setHydrationFlag
(
true
);
$classMetadata
->
getReflectionProperty
(
$name
)
->
setValue
(
$entity
,
$coll
);
...
...
@@ -142,7 +142,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
private
function
getLastKey
(
$coll
)
{
//
c
heck needed because of mixed results.
//
C
heck needed because of mixed results.
// is_object instead of is_array because is_array is slow on large arrays.
if
(
is_object
(
$coll
))
{
$coll
->
last
();
...
...
@@ -153,9 +153,9 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
}
}
private
function
getE
lement
(
array
$data
,
$className
)
private
function
getE
ntity
(
array
$data
,
$className
)
{
$entity
=
$this
->
_
em
->
getUnitOfWork
()
->
createEntity
(
$className
,
$data
);
$entity
=
$this
->
_
uow
->
createEntity
(
$className
,
$data
);
$oid
=
spl_object_hash
(
$entity
);
$this
->
_metadataMap
[
$oid
]
=
$this
->
_em
->
getClassMetadata
(
$className
);
return
$entity
;
...
...
@@ -169,7 +169,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
* @param <type> $entity2
* @param <type> $indexField
*/
private
function
addRelatedIndexedE
lement
(
$entity1
,
$property
,
$entity2
,
$indexField
)
private
function
addRelatedIndexedE
ntity
(
$entity1
,
$property
,
$entity2
,
$indexField
)
{
$classMetadata1
=
$this
->
_metadataMap
[
spl_object_hash
(
$entity1
)];
$classMetadata2
=
$this
->
_metadataMap
[
spl_object_hash
(
$entity2
)];
...
...
@@ -184,15 +184,23 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
* @param <type> $property
* @param <type> $entity2
*/
private
function
addRelatedE
lement
(
$entity1
,
$property
,
$entity2
)
private
function
addRelatedE
ntity
(
$entity1
,
$property
,
$entity2
)
{
$classMetadata1
=
$this
->
_metadataMap
[
spl_object_hash
(
$entity1
)];
$classMetadata1
->
getReflectionProperty
(
$property
)
->
getValue
(
$entity1
)
->
add
(
$entity2
);
}
/**
* Checks whether a field on an entity has a non-null value.
*
* @param object $entity
* @param string $field
* @return boolean
*/
private
function
isFieldSet
(
$entity
,
$field
)
{
return
$this
->
_metadataMap
[
spl_object_hash
(
$entity
)]
->
getReflectionProperty
(
$field
)
return
$this
->
_metadataMap
[
spl_object_hash
(
$entity
)]
->
getReflectionProperty
(
$field
)
->
getValue
(
$entity
)
!==
null
;
}
...
...
@@ -220,7 +228,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
$targetClass
->
getReflectionProperty
(
$sourceProp
)
->
setValue
(
$entity2
,
$entity1
);
}
}
else
{
//
f
or sure bidirectional, as there is no inverse side in unidirectional
//
F
or sure bidirectional, as there is no inverse side in unidirectional
$mappedByProp
=
$relation
->
getMappedByFieldName
();
$targetClass
->
getReflectionProperty
(
$mappedByProp
)
->
setValue
(
$entity2
,
$entity1
);
}
...
...
@@ -228,11 +236,8 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
}
/**
* Hydrates a single row.
*
* @param <type> $data The row data.
* @param <type> $cache The cache to use.
* @param <type> $result The result to append to.
* {@inheritdoc}
*
* @override
*/
protected
function
_hydrateRow
(
array
&
$data
,
array
&
$cache
,
&
$result
)
...
...
@@ -240,7 +245,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
// 1) Initialize
$id
=
$this
->
_idTemplate
;
// initialize the id-memory
$nonemptyComponents
=
array
();
$rowData
=
parent
::
_gatherRowData
(
$data
,
$cache
,
$id
,
$nonemptyComponents
);
$rowData
=
$this
->
_gatherRowData
(
$data
,
$cache
,
$id
,
$nonemptyComponents
);
$rootAlias
=
$this
->
_rootAlias
;
// 2) Hydrate the data of the root entity from the current row
...
...
@@ -318,11 +323,11 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
$index
=
$indexExists
?
$this
->
_identifierMap
[
$path
][
$id
[
$parent
]][
$id
[
$dqlAlias
]]
:
false
;
$indexIsValid
=
$index
!==
false
?
$this
->
isIndexKeyInUse
(
$baseElement
,
$relationAlias
,
$index
)
:
false
;
if
(
!
$indexExists
||
!
$indexIsValid
)
{
$element
=
$this
->
getE
lement
(
$data
,
$entityName
);
$element
=
$this
->
getE
ntity
(
$data
,
$entityName
);
if
(
$field
=
$this
->
_getCustomIndexField
(
$dqlAlias
))
{
$this
->
addRelatedIndexedE
lement
(
$baseElement
,
$relationAlias
,
$element
,
$field
);
$this
->
addRelatedIndexedE
ntity
(
$baseElement
,
$relationAlias
,
$element
,
$field
);
}
else
{
$this
->
addRelatedE
lement
(
$baseElement
,
$relationAlias
,
$element
);
$this
->
addRelatedE
ntity
(
$baseElement
,
$relationAlias
,
$element
);
}
$this
->
_identifierMap
[
$path
][
$id
[
$parent
]][
$id
[
$dqlAlias
]]
=
$this
->
getLastKey
(
$this
->
_metadataMap
[
$oid
]
...
...
@@ -341,7 +346,7 @@ class Doctrine_ORM_Internal_Hydration_ObjectHydrator extends Doctrine_ORM_Intern
$this
->
setRelatedElement
(
$baseElement
,
$relationAlias
,
null
);
}
else
if
(
!
$this
->
isFieldSet
(
$baseElement
,
$relationAlias
))
{
$this
->
setRelatedElement
(
$baseElement
,
$relationAlias
,
$this
->
getE
lement
(
$data
,
$entityName
));
$this
->
getE
ntity
(
$data
,
$entityName
));
}
}
...
...
lib/Doctrine/ORM/Internal/Hydration/ScalarHydrator.php
View file @
dd1afc7e
...
...
@@ -11,7 +11,7 @@
class
Doctrine_ORM_Internal_Hydration_ScalarHydrator
extends
Doctrine_ORM_Internal_Hydration_AbstractHydrator
{
/** @override */
protected
function
_hydrateAll
(
$parserResult
)
protected
function
_hydrateAll
()
{
$result
=
array
();
$cache
=
array
();
...
...
lib/Doctrine/ORM/Internal/Hydration/SingleScalarHydrator.php
View file @
dd1afc7e
...
...
@@ -12,7 +12,7 @@
class
Doctrine_ORM_Internal_Hydration_SingleScalarHydrator
extends
Doctrine_ORM_Internal_Hydration_AbstractHydrator
{
/** @override */
protected
function
_hydrateAll
(
$parserResult
)
protected
function
_hydrateAll
()
{
$cache
=
array
();
$result
=
$this
->
_stmt
->
fetchAll
(
PDO
::
FETCH_ASSOC
);
...
...
lib/Doctrine/ORM/Internal/Hydration/StandardHydrator.php
View file @
dd1afc7e
...
...
@@ -55,6 +55,7 @@
* @version $Revision: 3192 $
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @author Roman Borschel <roman@code-factory.org>
* @DEPRECATED
*/
class
Doctrine_ORM_Internal_Hydration_StandardHydrator
extends
Doctrine_ORM_Internal_Hydration_AbstractHydrator
{
...
...
lib/Doctrine/ORM/Internal/Null.php
View file @
dd1afc7e
...
...
@@ -40,6 +40,7 @@
* @version $Revision: 4723 $
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @todo No longer needed?
* @DEPRECATED
*/
// static initializer
Doctrine_ORM_Internal_Null
::
$INSTANCE
=
new
Doctrine_ORM_Internal_Null
();
...
...
lib/Doctrine/ORM/Mapping/ClassMetadata.php
View file @
dd1afc7e
...
...
@@ -1499,6 +1499,32 @@ class Doctrine_ORM_Mapping_ClassMetadata
return
isset
(
$this
->
_associationMappings
[
$fieldName
]);
}
/**
* Checks whether the class has a mapped association for the specified field
* and if yes, checks whether it is a single-valued association (to-one).
*
* @param string $fieldName
* @return boolean TRUE if the association exists and is single-valued, FALSE otherwise.
*/
public
function
isSingleValuedAssociation
(
$fieldName
)
{
return
isset
(
$this
->
_associationMappings
[
$fieldName
])
&&
$this
->
_associationMappings
[
$fieldName
]
->
isOneToOne
();
}
/**
* Checks whether the class has a mapped association for the specified field
* and if yes, checks whether it is a collection-valued association (to-many).
*
* @param string $fieldName
* @return boolean TRUE if the association exists and is collection-valued, FALSE otherwise.
*/
public
function
isCollectionValuedAssociation
(
$fieldName
)
{
return
isset
(
$this
->
_associationMappings
[
$fieldName
])
&&
!
$this
->
_associationMappings
[
$fieldName
]
->
isOneToOne
();
}
/** Creates a string representation of the instance. */
public
function
__toString
()
{
...
...
lib/Doctrine/ORM/Query.php
View file @
dd1afc7e
...
...
@@ -304,10 +304,10 @@ class Doctrine_ORM_Query extends Doctrine_ORM_Query_Abstract
// Double the params if we are using limit-subquery algorithm
// We always have an instance of Doctrine_ORM_Query_ParserResult on hands...
if
(
$this
->
_parserResult
->
isLimitSubqueryUsed
()
&&
/*
if ($this->_parserResult->isLimitSubqueryUsed() &&
$this->_entityManager->getConnection()->getAttribute(Doctrine::ATTR_DRIVER_NAME) !== 'mysql') {
$params = array_merge($params, $params);
}
}
*/
// Executing the query and returning statement
return
$executor
->
execute
(
$this
->
_conn
,
$params
);
...
...
lib/Doctrine/ORM/UnitOfWork.php
View file @
dd1afc7e
...
...
@@ -1113,7 +1113,6 @@ class Doctrine_ORM_UnitOfWork
* @param Doctrine\ORM\Entity $entity
* @param array $data
* @param boolean $overrideLocalChanges
* @return void
*/
private
function
_mergeData
(
$entity
,
array
$data
,
$class
,
$overrideLocalChanges
=
false
)
{
if
(
$overrideLocalChanges
)
{
...
...
tests/Orm/Functional/BasicCRUDTest.php
View file @
dd1afc7e
...
...
@@ -50,7 +50,7 @@ class Orm_Functional_BasicCRUDTest extends Doctrine_OrmFunctionalTestCase {
}
public
function
testMore
()
{
echo
PHP_EOL
.
"SECOND"
.
PHP_EOL
;
#
echo PHP_EOL . "SECOND" . PHP_EOL;
/*$user = new CmsUser;
$user->name = 'jon';
$user->*/
...
...
tests/Orm/Hydration/AllTests.php
View file @
dd1afc7e
...
...
@@ -23,7 +23,6 @@ class Orm_Hydration_AllTests
{
$suite
=
new
Doctrine_TestSuite
(
'Doctrine Orm Hydration'
);
//$suite->addTestSuite('Orm_Hydration_BasicHydrationTest');
$suite
->
addTestSuite
(
'Orm_Hydration_ObjectHydratorTest'
);
$suite
->
addTestSuite
(
'Orm_Hydration_ArrayHydratorTest'
);
$suite
->
addTestSuite
(
'Orm_Hydration_ScalarHydratorTest'
);
...
...
tests/Orm/Hydration/ArrayHydratorTest.php
View file @
dd1afc7e
...
...
@@ -46,7 +46,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
));
$
queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -115,7 +115,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -185,7 +185,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -257,7 +257,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -377,7 +377,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -525,7 +525,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -647,7 +647,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
));
$
queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -692,7 +692,7 @@ class Orm_Hydration_ArrayHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ArrayHydrator
(
$this
->
_em
);
$iterableResult
=
$hydrator
->
iterate
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_ARRAY
));
$
queryComponents
,
$tableAliasMap
));
$rowNum
=
0
;
while
((
$row
=
$iterableResult
->
next
())
!==
false
)
{
...
...
tests/Orm/Hydration/BasicHydrationTest.php
deleted
100644 → 0
View file @
4e62d4a9
This diff is collapsed.
Click to expand it.
tests/Orm/Hydration/HydrationTest.php
View file @
dd1afc7e
...
...
@@ -19,12 +19,9 @@ class Orm_Hydration_HydrationTest extends Doctrine_OrmTestCase
}
/** Helper method */
protected
function
_createParserResult
(
$stmt
,
$queryComponents
,
$tableToClassAliasMap
,
$hydrationMode
,
$isMixedQuery
=
false
)
protected
function
_createParserResult
(
$queryComponents
,
$tableToClassAliasMap
,
$isMixedQuery
=
false
)
{
$parserResult
=
new
Doctrine_ORM_Query_ParserResultDummy
();
$parserResult
->
setDatabaseStatement
(
$stmt
);
$parserResult
->
setHydrationMode
(
$hydrationMode
);
$parserResult
->
setQueryComponents
(
$queryComponents
);
$parserResult
->
setTableToClassAliasMap
(
$tableToClassAliasMap
);
$parserResult
->
setMixedQuery
(
$isMixedQuery
);
...
...
tests/Orm/Hydration/ObjectHydratorTest.php
View file @
dd1afc7e
...
...
@@ -46,7 +46,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
));
$
queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
$result
instanceof
Doctrine_ORM_Collection
);
...
...
@@ -117,7 +117,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -194,7 +194,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -268,7 +268,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -392,7 +392,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -536,7 +536,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
,
true
));
$
queryComponents
,
$tableAliasMap
,
true
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -652,7 +652,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
));
$
queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
2
,
count
(
$result
));
$this
->
assertTrue
(
$result
instanceof
Doctrine_ORM_Collection
);
...
...
@@ -700,7 +700,7 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ObjectHydrator
(
$this
->
_em
);
$iterableResult
=
$hydrator
->
iterate
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_OBJECT
));
$
queryComponents
,
$tableAliasMap
));
$rowNum
=
0
;
while
((
$row
=
$iterableResult
->
next
())
!==
false
)
{
...
...
@@ -716,5 +716,78 @@ class Orm_Hydration_ObjectHydratorTest extends Orm_Hydration_HydrationTest
++
$rowNum
;
}
}
/**
* select u.id, u.status, p.phonenumber, upper(u.name) nameUpper from User u
* join u.phonenumbers p
* =
* select u.id, u.status, p.phonenumber, upper(u.name) as u__0 from USERS u
* INNER JOIN PHONENUMBERS p ON u.id = p.user_id
*
* @dataProvider hydrationModeProvider
*/
/*public function testNewHydrationMixedQueryFetchJoinPerformance()
{
// Faked query components
$queryComponents = array(
'u' => array(
'metadata' => $this->_em->getClassMetadata('CmsUser'),
'parent' => null,
'relation' => null,
'map' => null,
'agg' => array('0' => 'nameUpper')
),
'p' => array(
'metadata' => $this->_em->getClassMetadata('CmsPhonenumber'),
'parent' => 'u',
'relation' => $this->_em->getClassMetadata('CmsUser')->getAssociationMapping('phonenumbers'),
'map' => null
)
);
// Faked table alias map
$tableAliasMap = array(
'u' => 'u',
'p' => 'p'
);
// Faked result set
$resultSet = array(
//row1
array(
'u__id' => '1',
'u__status' => 'developer',
'u__0' => 'ROMANB',
'p__phonenumber' => '42',
),
array(
'u__id' => '1',
'u__status' => 'developer',
'u__0' => 'ROMANB',
'p__phonenumber' => '43',
),
array(
'u__id' => '2',
'u__status' => 'developer',
'u__0' => 'JWAGE',
'p__phonenumber' => '91'
)
);
for ($i=4; $i<300; $i++) {
$resultSet[] = array(
'u__id' => $i,
'u__status' => 'developer',
'u__0' => 'JWAGE' . $i,
'p__phonenumber' => '91'
);
}
$stmt = new Doctrine_HydratorMockStatement($resultSet);
$hydrator = new Doctrine_ORM_Internal_Hydration_ObjectHydrator($this->_em);
$result = $hydrator->hydrateAll($stmt, $this->_createParserResult(
$queryComponents, $tableAliasMap, true));
}*/
}
tests/Orm/Hydration/ScalarHydratorTest.php
View file @
dd1afc7e
...
...
@@ -46,7 +46,7 @@ class Orm_Hydration_ScalarHydratorTest extends Orm_Hydration_HydrationTest
$hydrator
=
new
Doctrine_ORM_Internal_Hydration_ScalarHydrator
(
$this
->
_em
);
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$
stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_SCALAR
));
$
queryComponents
,
$tableAliasMap
));
$this
->
assertTrue
(
is_array
(
$result
));
$this
->
assertEquals
(
2
,
count
(
$result
));
...
...
tests/Orm/Hydration/SingleScalarHydratorTest.php
View file @
dd1afc7e
...
...
@@ -74,16 +74,16 @@ class Orm_Hydration_SingleScalarHydratorTest extends Orm_Hydration_HydrationTest
if
(
$name
==
'result1'
)
{
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_SINGLE_SCALAR
));
$queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
'romanb'
,
$result
);
}
else
if
(
$name
==
'result2'
)
{
$result
=
$hydrator
->
hydrateAll
(
$stmt
,
$this
->
_createParserResult
(
$stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_SINGLE_SCALAR
));
$queryComponents
,
$tableAliasMap
));
$this
->
assertEquals
(
1
,
$result
);
}
else
if
(
$name
==
'result3'
||
$name
==
'result4'
)
{
try
{
$result
=
$hydrator
->
hydrateall
(
$stmt
,
$this
->
_createParserResult
(
$stmt
,
$queryComponents
,
$tableAliasMap
,
Doctrine_ORM_Query
::
HYDRATE_SINGLE_SCALAR
));
$queryComponents
,
$tableAliasMap
));
$this
->
fail
();
}
catch
(
Doctrine_ORM_Exceptions_HydrationException
$ex
)
{}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment