traces.html.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <div class="trace trace-as-html" id="trace-box-<?= $index; ?>">
  2. <div class="trace-details">
  3. <div class="trace-head">
  4. <div class="sf-toggle" data-toggle-selector="#trace-html-<?= $index; ?>" data-toggle-initial="<?= $expand ? 'display' : ''; ?>">
  5. <span class="icon icon-close"><?= $this->include('assets/images/icon-minus-square-o.svg'); ?></span>
  6. <span class="icon icon-open"><?= $this->include('assets/images/icon-plus-square-o.svg'); ?></span>
  7. <?php
  8. $separator = strrpos($exception['class'], '\\');
  9. $separator = false === $separator ? 0 : $separator + 1;
  10. $namespace = substr($exception['class'], 0, $separator);
  11. $class = substr($exception['class'], $separator);
  12. ?>
  13. <?php if ('' === $class) { ?>
  14. <br>
  15. <?php } else { ?>
  16. <h3 class="trace-class">
  17. <?php if ('' !== $namespace) { ?>
  18. <span class="trace-namespace"><?= $namespace; ?></span>
  19. <?php } ?>
  20. <?= $class; ?>
  21. </h3>
  22. <?php } ?>
  23. <?php if ($exception['message'] && $index > 1) { ?>
  24. <p class="break-long-words trace-message"><?= $this->escape($exception['message']); ?></p>
  25. <?php } ?>
  26. </div>
  27. <?php if (\count($exception['data'] ?? [])) { ?>
  28. <details class="exception-properties-wrapper">
  29. <summary>Show exception properties</summary>
  30. <div class="exception-properties">
  31. <?= $this->dumpValue($exception['data']) ?>
  32. </div>
  33. </details>
  34. <?php } ?>
  35. </div>
  36. <div id="trace-html-<?= $index; ?>" class="sf-toggle-content">
  37. <?php
  38. $isFirstUserCode = true;
  39. foreach ($exception['trace'] as $i => $trace) {
  40. $isVendorTrace = $trace['file'] && (str_contains($trace['file'], '/vendor/') || str_contains($trace['file'], '/var/cache/'));
  41. $displayCodeSnippet = $isFirstUserCode && !$isVendorTrace;
  42. if ($displayCodeSnippet) {
  43. $isFirstUserCode = false;
  44. } ?>
  45. <div class="trace-line <?= $isVendorTrace ? 'trace-from-vendor' : ''; ?>">
  46. <?= $this->include('views/trace.html.php', [
  47. 'prefix' => $index,
  48. 'i' => $i,
  49. 'trace' => $trace,
  50. 'style' => $isVendorTrace ? 'compact' : ($displayCodeSnippet ? 'expanded' : ''),
  51. ]); ?>
  52. </div>
  53. <?php
  54. } ?>
  55. </div>
  56. </div>
  57. </div>