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
8f755652
Commit
8f755652
authored
Sep 06, 2009
by
guilhermeblanco
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[2.0] Added support to dump Entities even when xdebug is not laoded
parent
846e0bfd
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
56 additions
and
3 deletions
+56
-3
Debug.php
lib/Doctrine/Common/Util/Debug.php
+56
-3
No files found.
lib/Doctrine/Common/Util/Debug.php
View file @
8f755652
...
@@ -54,15 +54,68 @@ final class Debug
...
@@ -54,15 +54,68 @@ final class Debug
public
static
function
dump
(
$var
,
$maxDepth
=
2
)
public
static
function
dump
(
$var
,
$maxDepth
=
2
)
{
{
ini_set
(
'html_errors'
,
'On'
);
ini_set
(
'html_errors'
,
'On'
);
ini_set
(
'xdebug.var_display_max_depth'
,
$maxDepth
);
if
(
extension_loaded
(
'xdebug'
))
{
$dump
=
self
::
_dumpWithXDebug
(
$var
,
$maxDepth
);
}
else
{
$dump
=
self
::
_dumpWithReflection
(
$var
,
$maxDepth
);
ob_start
();
ob_start
();
var_dump
(
$var
);
var_dump
(
$dump
);
$dump
=
ob_get_contents
();
$dump
=
ob_get_contents
();
ob_end_clean
();
ob_end_clean
();
}
echo
strip_tags
(
html_entity_decode
(
$dump
));
echo
strip_tags
(
html_entity_decode
(
$dump
));
ini_set
(
'html_errors'
,
'Off'
);
ini_set
(
'html_errors'
,
'Off'
);
}
}
private
static
function
_dumpWithXDebug
(
$var
,
$maxDepth
)
{
ini_set
(
'xdebug.var_display_max_depth'
,
$maxDepth
);
ob_start
();
var_dump
(
$var
);
$dump
=
ob_get_contents
();
ob_end_clean
();
return
$dump
;
}
private
static
function
_dumpWithReflection
(
$var
,
$maxDepth
)
{
$disallowedDumpableClasses
=
array
(
'Doctrine\ORM\EntityManager'
,
);
$reflClass
=
new
\ReflectionClass
(
get_class
(
$var
));
$arr
=
array
();
foreach
(
$reflClass
->
getProperties
()
as
$reflProperty
)
{
$reflProperty
->
setAccessible
(
true
);
$value
=
$reflProperty
->
getValue
(
$var
);
if
(
$maxDepth
)
{
if
(
is_object
(
$value
))
{
if
(
in_array
(
'Doctrine\Common\Collections\Collection'
,
class_implements
(
$value
)))
{
$value
=
$value
->
toArray
();
foreach
(
$value
as
$k
=>
$v
)
{
$value
[
$k
]
=
self
::
_dumpWithReflection
(
$v
,
$maxDepth
-
1
);
}
}
else
if
(
in_array
(
get_class
(
$value
),
$disallowedDumpableClasses
))
{
$value
=
get_class
(
$value
);
}
}
}
else
{
$value
=
is_object
(
$value
)
?
get_class
(
$value
)
:
$value
;
}
$arr
[
$reflProperty
->
getName
()]
=
$value
;
}
return
$arr
;
}
}
}
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