Code Duplication    Length = 84-84 lines in 2 locations

code/DebugBarDatabaseNewProxy.php 1 location

@@ 250-333 (lines=84) @@
247
        return $handle;
248
    }
249
250
    protected function findSource()
251
    {
252
        $traces = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT);
253
254
        // Not relevant to determine source
255
        $internalClasses = array(
256
            'DB', 'SQLExpression', 'DataList', 'DataObject',
257
            'DataQuery', 'SQLSelect', 'SQLQuery', 'SS_Map', 'SS_ListDecorator', 'Object'
258
        );
259
260
        $viewerClasses = array(
261
            'SSViewer_DataPresenter', 'SSViewer_Scope', 'SSViewer',
262
            'ViewableData'
263
        );
264
265
        $sources = array();
266
        foreach ($traces as $trace) {
267
            $class    = isset($trace['class']) ? $trace['class'] : null;
268
            $line     = isset($trace['line']) ? $trace['line'] : null;
269
            $function = isset($trace['function']) ? $trace['function'] : null;
270
            $type     = isset($trace['type']) ? $trace['type'] : '::';
271
272
            /* @var $object SSViewer */
273
            $object = isset($trace['object']) ? $trace['object'] : null;
274
275
            if (!$class) {
276
                continue;
277
            }
278
            if ($function && $function == '{closure}') {
279
                continue;
280
            }
281
            if (strpos($class, 'DebugBar') === 0) {
282
                continue;
283
            }
284
            if (in_array($class, $internalClasses)) {
285
                continue;
286
            }
287
            if (in_array($class, $viewerClasses)) {
288
                if ($function == 'includeGeneratedTemplate') {
289
                    $templates = $object->templates();
290
291
                    $template = null;
292
                    if (isset($templates['main'])) {
293
                        $template = basename($templates['main']);
294
                    } else {
295
                        $keys = array_keys($templates);
296
                        $key  = reset($keys);
297
                        if (isset($templates[$key])) {
298
                            $template = $key.':'.basename($templates[$key]);
299
                        }
300
                    }
301
                    if ($template) {
302
                        $sources[] = $template;
303
                    }
304
                }
305
                continue;
306
            }
307
308
            $name = $class;
309
            if ($function) {
310
                $name .= $type.$function;
311
            }
312
            if ($line) {
313
                $name .= ':'.$line;
314
            }
315
316
            $sources[] = $name;
317
318
            if (count($sources) > 3) {
319
                break;
320
            }
321
322
323
            // We reached a Controller, exit loop
324
            if ($object && $object instanceof Controller) {
325
                break;
326
            }
327
        }
328
329
        if (empty($sources)) {
330
            return 'Undefined source';
331
        }
332
        return implode(' > ', $sources);
333
    }
334
335
    /**
336
     * Execute the given SQL query.

code/DebugBarDatabaseProxy.php 1 location

@@ 222-305 (lines=84) @@
219
        return $handle;
220
    }
221
222
    protected function findSource()
223
    {
224
        $traces = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT);
225
226
        // Not relevant to determine source
227
        $internalClasses = array(
228
            'DB', 'SQLExpression', 'DataList', 'DataObject',
229
            'DataQuery', 'SQLSelect', 'SQLQuery', 'SS_Map', 'SS_ListDecorator', 'Object'
230
        );
231
232
        $viewerClasses = array(
233
            'SSViewer_DataPresenter', 'SSViewer_Scope', 'SSViewer',
234
            'ViewableData'
235
        );
236
237
        $sources = array();
238
        foreach ($traces as $trace) {
239
            $class    = isset($trace['class']) ? $trace['class'] : null;
240
            $line     = isset($trace['line']) ? $trace['line'] : null;
241
            $function = isset($trace['function']) ? $trace['function'] : null;
242
            $type     = isset($trace['type']) ? $trace['type'] : '::';
243
244
            /* @var $object SSViewer */
245
            $object = isset($trace['object']) ? $trace['object'] : null;
246
247
            if (!$class) {
248
                continue;
249
            }
250
            if ($function && $function == '{closure}') {
251
                continue;
252
            }
253
            if (strpos($class, 'DebugBar') === 0) {
254
                continue;
255
            }
256
            if (in_array($class, $internalClasses)) {
257
                continue;
258
            }
259
            if (in_array($class, $viewerClasses)) {
260
                if ($function == 'includeGeneratedTemplate') {
261
                    $templates = $object->templates();
262
263
                    $template = null;
264
                    if (isset($templates['main'])) {
265
                        $template = basename($templates['main']);
266
                    } else {
267
                        $keys = array_keys($templates);
268
                        $key  = reset($keys);
269
                        if (isset($templates[$key])) {
270
                            $template = $key.':'.basename($templates[$key]);
271
                        }
272
                    }
273
                    if ($template) {
274
                        $sources[] = $template;
275
                    }
276
                }
277
                continue;
278
            }
279
280
            $name = $class;
281
            if ($function) {
282
                $name .= $type.$function;
283
            }
284
            if ($line) {
285
                $name .= ':'.$line;
286
            }
287
288
            $sources[] = $name;
289
290
            if (count($sources) > 3) {
291
                break;
292
            }
293
294
295
            // We reached a Controller, exit loop
296
            if ($object && $object instanceof Controller) {
297
                break;
298
            }
299
        }
300
301
        if (empty($sources)) {
302
            return 'Undefined source';
303
        }
304
        return implode(' > ', $sources);
305
    }
306
307
    /**
308
     * Execute the given SQL query.