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
b234e717
Commit
b234e717
authored
May 30, 2007
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
--no commit message
--no commit message
parent
12a9f30a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
65 deletions
+31
-65
Hydrate.php
draft/new-core/Hydrate.php
+31
-65
No files found.
draft/new-core/Hydrate.php
View file @
b234e717
...
...
@@ -680,30 +680,7 @@ class Doctrine_Hydrate implements Serializable
}
return
$array
;
}
/**
* isIdentifiable
* returns whether or not a given data row is identifiable (it contains
* all primary key fields specified in the second argument)
*
* @param array $row
* @param mixed $primaryKeys
* @return boolean
*/
public
function
isIdentifiable
(
array
$row
,
$primaryKeys
)
{
if
(
is_array
(
$primaryKeys
))
{
foreach
(
$primaryKeys
as
$id
)
{
if
(
$row
[
$id
]
==
null
)
{
return
false
;
}
}
}
else
{
if
(
!
isset
(
$row
[
$primaryKeys
]))
{
return
false
;
}
}
return
true
;
}
/**
* getType
*
...
...
@@ -829,6 +806,7 @@ class Doctrine_Hydrate implements Serializable
$alias
=
$cache
[
$key
][
'alias'
];
$component
=
$cache
[
$key
][
'component'
];
$componentName
=
$this
->
_aliasMap
[
$cache
[
$key
][
'alias'
]][
'table'
]
->
getComponentName
();
$table
=
$this
->
_aliasMap
[
$cache
[
$key
][
'alias'
]][
'table'
];
if
(
!
isset
(
$currData
[
$alias
]))
{
...
...
@@ -842,30 +820,23 @@ class Doctrine_Hydrate implements Serializable
if
(
$alias
!==
$lastAlias
||
$parse
)
{
// component changed
if
(
$alias
===
$rootAlias
)
{
// dealing with root component
if
(
!
isset
(
$prevData
[
$alias
])
||
$currData
[
$alias
]
!==
$prevData
[
$alias
])
{
if
(
!
empty
(
$currData
[
$alias
]))
{
$array
[
$index
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$prev
[
$alias
]
=&
$array
[
$index
];
$index
++
;
}
}
}
else
{
$parent
=
$cache
[
$key
][
'parent'
];
$relation
=
$this
->
_aliasMap
[
$cache
[
$key
][
'alias'
]][
'relation'
];
if
(
!
isset
(
$prevData
[
$alias
])
||
$currData
[
$alias
]
!==
$prevData
[
$alias
])
{
if
(
!
empty
(
$currData
[
$alias
]))
{
// check the type of the relation
if
(
!
$relation
->
isOneToOne
())
{
if
(
!
isset
(
$prevData
[
$alias
])
||
(
isset
(
$currData
[
$alias
])
&&
$currData
[
$alias
]
!==
$prevData
[
$alias
]))
{
if
(
!
empty
(
$currData
[
$alias
])
&&
$driver
->
isIdentifiable
(
$currData
[
$alias
],
$table
))
{
if
(
$alias
===
$rootAlias
)
{
// dealing with root component
$prev
[
$parent
][
$component
][]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$array
[
$index
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$prev
[
$alias
]
=&
$array
[
$index
];
$index
++
;
}
else
{
$parent
=
$cache
[
$key
][
'parent'
];
$relation
=
$this
->
_aliasMap
[
$cache
[
$key
][
'alias'
]][
'relation'
];
// check the type of the relation
if
(
!
$relation
->
isOneToOne
())
{
$prev
[
$parent
][
$component
][]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$driver
->
registerCollection
(
$prev
[
$parent
][
$component
]);
}
else
{
$prev
[
$parent
][
$component
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
...
...
@@ -892,30 +863,25 @@ class Doctrine_Hydrate implements Serializable
}
foreach
(
$currData
as
$alias
=>
$data
)
{
$componentName
=
$this
->
_aliasMap
[
$alias
][
'table'
]
->
getComponentName
();
if
(
$alias
===
$rootAlias
)
{
// dealing with root component
if
(
!
isset
(
$prevData
[
$alias
])
||
$currData
[
$alias
]
!==
$prevData
[
$alias
])
{
if
(
!
empty
(
$currData
[
$alias
]))
{
if
(
!
isset
(
$prevData
[
$alias
])
||
(
isset
(
$currData
[
$alias
])
&&
$currData
[
$alias
]
!==
$prevData
[
$alias
]))
{
if
(
!
empty
(
$currData
[
$alias
])
&&
$driver
->
isIdentifiable
(
$currData
[
$alias
],
$table
))
{
if
(
$alias
===
$rootAlias
)
{
// dealing with root component
$array
[
$index
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$prev
[
$alias
]
=&
$array
[
$index
];
$index
++
;
}
}
}
else
{
$parent
=
$this
->
_aliasMap
[
$alias
][
'parent'
];
$relation
=
$this
->
_aliasMap
[
$alias
][
'relation'
];
$componentAlias
=
$relation
->
getAlias
();
if
(
!
isset
(
$prevData
[
$alias
])
||
$currData
[
$alias
]
!==
$prevData
[
$alias
])
{
// check the type of the relation
if
(
!
$relation
->
isOneToOne
())
{
$prev
[
$parent
][
$component
][]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$driver
->
registerCollection
(
$prev
[
$parent
][
$component
]);
}
else
{
$prev
[
$parent
][
$component
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$parent
=
$this
->
_aliasMap
[
$alias
][
'parent'
];
$relation
=
$this
->
_aliasMap
[
$alias
][
'relation'
];
$componentAlias
=
$relation
->
getAlias
();
// check the type of the relation
if
(
!
$relation
->
isOneToOne
())
{
$prev
[
$parent
][
$component
][]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
$driver
->
registerCollection
(
$prev
[
$parent
][
$component
]);
}
else
{
$prev
[
$parent
][
$component
]
=
$driver
->
getElement
(
$currData
[
$alias
],
$componentName
);
}
}
}
}
...
...
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