@@ -126,17 +126,13 @@ public function shutdown(Event $event)
126126 // Convert objects into using __debugInfo.
127127 $ item = $ this ->_walkDebugInfo ($ walker , $ item );
128128 } else {
129- try {
130- serialize ($ item );
131- } catch (\Exception $ e ) {
132- $ item = __d ('debug_kit ' , 'Unserializable object - {0}. Error: {1} in {2}, line {3} ' , get_class ($ item ), $ e ->getMessage (), $ e ->getFile (), $ e ->getLine ());
133- }
129+ $ item = $ this ->trySerialize ($ item );
134130 }
135131 } elseif (is_resource ($ item )) {
136132 $ item = sprintf ('[%s] %s ' , get_resource_type ($ item ), $ item );
137133 }
138134
139- return $ item ;
135+ return $ this -> trySerialize ( $ item) ;
140136 };
141137 // Copy so viewVars is not mutated.
142138 $ vars = $ controller ->viewVars ;
@@ -160,6 +156,27 @@ public function shutdown(Event $event)
160156 ];
161157 }
162158
159+ /**
160+ * Try to serialize an item, provide an error message if not possible
161+ *
162+ * @param mixed $item Item to check
163+ * @return mixed The $item if it is serializable, error message if not
164+ */
165+ protected function trySerialize ($ item )
166+ {
167+ try {
168+ serialize ($ item );
169+
170+ return $ item ;
171+ } catch (\Exception $ e ) {
172+ if (is_object ($ item )) {
173+ return __d ('debug_kit ' , 'Unserializable object - {0}. Error: {1} in {2}, line {3} ' , get_class ($ item ), $ e ->getMessage (), $ e ->getFile (), $ e ->getLine ());
174+ }
175+
176+ return __d ('debug_kit ' , 'Unserializable Error: {1} in {2}, line {3} ' , $ e ->getMessage (), $ e ->getFile (), $ e ->getLine ());
177+ }
178+ }
179+
163180 /**
164181 * Get summary data for the variables panel.
165182 *
0 commit comments