|
| 1 | +<?php declare(strict_types=1); |
| 2 | + |
| 3 | +/** @var ?array<string,mixed> $matched */ |
| 4 | +/** @var array{path:string,domain:?string,module:string,routes:array<mixed>} $routes */ |
| 5 | +/** @var \ReflectionClass<Nette\Application\IPresenter>|\ReflectionMethod|string|null $source */ |
| 6 | +/** @var Nette\Http\UrlScript $url */ |
| 7 | +/** @var string $method */ |
| 8 | +use Nette\Application\UI\Presenter; |
| 9 | +echo "\n"; |
| 10 | +$_blocks['route'] = function ($route,$path) use (&$_blocks) { |
| 11 | + $mark = ['yes' => 'MATCHED', 'may' => 'MAY MATCH', 'no' => 'no match', 'oneway' => 'one-way', 'error' => 'ERROR'][$route->matched] ?? $route->matched /* pos 9:2 */; |
| 12 | + $mask = $route->mask !== null ? $path . $route->mask : $route->class /* pos 10:2 */; |
| 13 | + $defaults = [] /* pos 11:2 */; |
| 14 | + foreach ($route->defaults as $k => $v) /* pos 12:2 */ { |
| 15 | + $defaults[] = $k . '=' . (is_string($v) ? $v : (is_scalar($v) ? var_export($v, true) : get_debug_type($v))) /* pos 12:40 */; |
| 16 | + } |
| 17 | + |
| 18 | + echo '- ['; |
| 19 | + echo Tracy\Helpers::escapeMd($mark) /* pos 13:6 */; |
| 20 | + echo '] `'; |
| 21 | + echo $mask /* pos 13:16 */; |
| 22 | + echo '`'; |
| 23 | + if ($defaults) /* pos 13:33 */ { |
| 24 | + echo ' ('; |
| 25 | + echo Tracy\Helpers::escapeMd(implode(', ', $defaults)) /* pos 13:49 */; |
| 26 | + echo ')'; |
| 27 | + } |
| 28 | + if ($route->error) /* pos 13:82 */ { |
| 29 | + echo ' — '; |
| 30 | + echo Tracy\Helpers::escapeMd($route->error->getMessage()) /* pos 13:105 */; |
| 31 | + } |
| 32 | + echo "\n"; |
| 33 | +}; |
| 34 | +echo "\n"; |
| 35 | +$_blocks['routeList'] = function ($list,$path) use (&$_blocks) { |
| 36 | + if ($list['domain']) /* pos 17:2 */ { |
| 37 | + echo '- domain: `'; |
| 38 | + echo Tracy\Helpers::escapeMd($list['domain']) /* pos 17:31 */; |
| 39 | + echo '` |
| 40 | +'; |
| 41 | + } |
| 42 | + if ($list['module']) /* pos 19:2 */ { |
| 43 | + echo '- module: `'; |
| 44 | + echo Tracy\Helpers::escapeMd($list['module']) /* pos 19:31 */; |
| 45 | + echo '` |
| 46 | +'; |
| 47 | + } |
| 48 | + $path .= $list['path'] /* pos 21:2 */; |
| 49 | + foreach ($list['routes'] as $router) /* pos 22:2 */ { |
| 50 | + if (is_array($router)) /* pos 23:3 */ { |
| 51 | + $_blocks['routeList']($router,$path); |
| 52 | + } else /* pos 25:3 */ { |
| 53 | + $_blocks['route']($router,$path); |
| 54 | + } |
| 55 | + |
| 56 | + } |
| 57 | + |
| 58 | +}; |
| 59 | +echo ' |
| 60 | +## Routing |
| 61 | +
|
| 62 | +`'; |
| 63 | +echo Tracy\Helpers::escapeMd($method) /* pos 33:2 */; |
| 64 | +echo ' '; |
| 65 | +echo Tracy\Helpers::escapeMd($url->getAbsoluteUrl()) /* pos 33:12 */; |
| 66 | +echo '` |
| 67 | +
|
| 68 | +'; |
| 69 | +if ($matched === null) /* pos 35:1 */ { |
| 70 | + echo '**Matched:** no route |
| 71 | +'; |
| 72 | +} else /* pos 37:1 */ { |
| 73 | + $target = ($matched[Presenter::PresenterKey] ?? '?') . ':' . ($matched[Presenter::ActionKey] ?? Presenter::DefaultAction) /* pos 38:2 */; |
| 74 | + echo '**Matched:** '; |
| 75 | + echo Tracy\Helpers::escapeMd($target) /* pos 39:15 */; |
| 76 | + if (isset($matched[Presenter::SignalKey])) /* pos 39:24 */ { |
| 77 | + echo Tracy\Helpers::escapeMd($matched[Presenter::SignalKey]) /* pos 39:66 */; |
| 78 | + echo '!'; |
| 79 | + } |
| 80 | + echo "\n"; |
| 81 | + if (is_string($source)) /* pos 40:2 */ { |
| 82 | + echo '**Handler:** '; |
| 83 | + echo Tracy\Helpers::escapeMd($source) /* pos 41:16 */; |
| 84 | + echo ' (class not found) |
| 85 | +'; |
| 86 | + } elseif ($source instanceof \ReflectionMethod) /* pos 42:2 */ { |
| 87 | + echo '**Handler:** '; |
| 88 | + echo Tracy\Helpers::escapeMd($source->getDeclaringClass()->getName()) /* pos 43:16 */; |
| 89 | + echo '::'; |
| 90 | + echo Tracy\Helpers::escapeMd($source->getName()) /* pos 43:59 */; |
| 91 | + echo '() in '; |
| 92 | + echo Tracy\Helpers::escapeMd($source->getFileName()) /* pos 43:85 */; |
| 93 | + echo ':'; |
| 94 | + echo Tracy\Helpers::escapeMd($source->getStartLine()) /* pos 43:110 */; |
| 95 | + echo "\n"; |
| 96 | + } elseif ($source instanceof \ReflectionClass) /* pos 44:2 */ { |
| 97 | + echo '**Handler:** '; |
| 98 | + echo Tracy\Helpers::escapeMd($source->getName()) /* pos 45:16 */; |
| 99 | + echo ' in '; |
| 100 | + echo Tracy\Helpers::escapeMd($source->getFileName()) /* pos 45:40 */; |
| 101 | + echo ':'; |
| 102 | + echo Tracy\Helpers::escapeMd($source->getStartLine()) /* pos 45:65 */; |
| 103 | + echo "\n"; |
| 104 | + } |
| 105 | + |
| 106 | + |
| 107 | + $skip = [Presenter::PresenterKey => 1, Presenter::ActionKey => 1, Presenter::SignalKey => 1] /* pos 47:2 */; |
| 108 | + $extras = array_diff_key($matched, $skip) /* pos 48:2 */; |
| 109 | + if ($extras) /* pos 49:2 */ { |
| 110 | + echo '**Parameters:** |
| 111 | +'; |
| 112 | + foreach ($extras as $key => $value) /* pos 51:3 */ { |
| 113 | + echo '- '; |
| 114 | + echo Tracy\Helpers::escapeMd($key) /* pos 52:6 */; |
| 115 | + echo ' = '; |
| 116 | + echo Tracy\Helpers::escapeMd(is_string($value) ? $value : (is_scalar($value) ? var_export($value, true) : get_debug_type($value))) /* pos 52:15 */; |
| 117 | + echo "\n"; |
| 118 | + |
| 119 | + } |
| 120 | + |
| 121 | + } |
| 122 | +} |
| 123 | +echo ' |
| 124 | +### Routes |
| 125 | +'; |
| 126 | +if (empty($routes['routes'])) /* pos 58:1 */ { |
| 127 | + echo '(none defined) |
| 128 | +'; |
| 129 | +} else /* pos 60:1 */ { |
| 130 | + $_blocks['routeList']($routes,''); |
| 131 | +} |
0 commit comments