@@ -24,7 +24,7 @@ |
||
| 24 | 24 | return match (true) { |
| 25 | 25 | $string === $pattern => true, |
| 26 | 26 | !$this->isPattern($pattern) => false, |
| 27 | - default => (bool) \preg_match($this->getRegex($pattern), $string) |
|
| 27 | + default => (bool)\preg_match($this->getRegex($pattern), $string) |
|
| 28 | 28 | }; |
| 29 | 29 | } |
| 30 | 30 | |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | public function testIterate(): void |
| 26 | 26 | { |
| 27 | 27 | $out = ''; |
| 28 | - foreach ($this->buffer('abc') as $n) { |
|
| 28 | + foreach ($this->buffer('abc') as $n){ |
|
| 29 | 29 | $out .= $n->char; |
| 30 | 30 | } |
| 31 | 31 | |
@@ -149,14 +149,14 @@ discard block |
||
| 149 | 149 | |
| 150 | 150 | private function generate(StreamInterface $src) |
| 151 | 151 | { |
| 152 | - while (!$src->isEOI()) { |
|
| 152 | + while (!$src->isEOI()){ |
|
| 153 | 153 | yield new Byte($src->getOffset(), $src->peak()); |
| 154 | 154 | } |
| 155 | 155 | } |
| 156 | 156 | |
| 157 | 157 | private function generateToken(StreamInterface $src): \Generator |
| 158 | 158 | { |
| 159 | - while (!$src->isEOI()) { |
|
| 159 | + while (!$src->isEOI()){ |
|
| 160 | 160 | yield new Token(0, null, $src->peak()); |
| 161 | 161 | } |
| 162 | 162 | } |
@@ -25,7 +25,8 @@ discard block |
||
| 25 | 25 | public function testIterate(): void |
| 26 | 26 | { |
| 27 | 27 | $out = ''; |
| 28 | - foreach ($this->buffer('abc') as $n) { |
|
| 28 | + foreach ($this->buffer('abc') as $n) |
|
| 29 | + { |
|
| 29 | 30 | $out .= $n->char; |
| 30 | 31 | } |
| 31 | 32 | |
@@ -149,14 +150,16 @@ discard block |
||
| 149 | 150 | |
| 150 | 151 | private function generate(StreamInterface $src) |
| 151 | 152 | { |
| 152 | - while (!$src->isEOI()) { |
|
| 153 | + while (!$src->isEOI()) |
|
| 154 | + { |
|
| 153 | 155 | yield new Byte($src->getOffset(), $src->peak()); |
| 154 | 156 | } |
| 155 | 157 | } |
| 156 | 158 | |
| 157 | 159 | private function generateToken(StreamInterface $src): \Generator |
| 158 | 160 | { |
| 159 | - while (!$src->isEOI()) { |
|
| 161 | + while (!$src->isEOI()) |
|
| 162 | + { |
|
| 160 | 163 | yield new Token(0, null, $src->peak()); |
| 161 | 164 | } |
| 162 | 165 | } |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | /** @internal */ |
| 20 | 20 | private readonly \Generator $generator, |
| 21 | 21 | private int $offset = 0 |
| 22 | - ) { |
|
| 22 | + ){ |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /** |
@@ -30,7 +30,7 @@ discard block |
||
| 30 | 30 | */ |
| 31 | 31 | public function getIterator(): \Traversable |
| 32 | 32 | { |
| 33 | - while ($n = $this->next()) { |
|
| 33 | + while ($n = $this->next()){ |
|
| 34 | 34 | yield $n; |
| 35 | 35 | } |
| 36 | 36 | } |
@@ -40,20 +40,20 @@ discard block |
||
| 40 | 40 | return $this->offset; |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | - public function next(): Byte|Token|null |
|
| 43 | + public function next(): Byte | Token | null |
|
| 44 | 44 | { |
| 45 | - if ($this->replay !== []) { |
|
| 45 | + if ($this->replay !== []){ |
|
| 46 | 46 | $n = \array_shift($this->replay); |
| 47 | - } else { |
|
| 47 | + }else{ |
|
| 48 | 48 | $n = $this->generator->current(); |
| 49 | - if ($n === null) { |
|
| 49 | + if ($n === null){ |
|
| 50 | 50 | return null; |
| 51 | 51 | } |
| 52 | 52 | $this->generator->next(); |
| 53 | 53 | $this->buffer[] = $n; |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | - if ($n !== null && $n->offset !== null) { |
|
| 56 | + if ($n !== null && $n->offset !== null){ |
|
| 57 | 57 | $this->offset = $n->offset; |
| 58 | 58 | } |
| 59 | 59 | |
@@ -66,10 +66,10 @@ discard block |
||
| 66 | 66 | public function nextBytes(): string |
| 67 | 67 | { |
| 68 | 68 | $result = ''; |
| 69 | - while ($n = $this->next()) { |
|
| 70 | - if ($n instanceof Byte) { |
|
| 69 | + while ($n = $this->next()){ |
|
| 70 | + if ($n instanceof Byte){ |
|
| 71 | 71 | $result .= $n->char; |
| 72 | - } else { |
|
| 72 | + }else{ |
|
| 73 | 73 | break; |
| 74 | 74 | } |
| 75 | 75 | } |
@@ -80,14 +80,14 @@ discard block |
||
| 80 | 80 | /** |
| 81 | 81 | * Get next generator value without advancing the position. |
| 82 | 82 | */ |
| 83 | - public function lookahead(): Byte|Token|null |
|
| 83 | + public function lookahead(): Byte | Token | null |
|
| 84 | 84 | { |
| 85 | - if ($this->replay !== []) { |
|
| 85 | + if ($this->replay !== []){ |
|
| 86 | 86 | return $this->replay[0]; |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | $n = $this->next(); |
| 90 | - if ($n !== null) { |
|
| 90 | + if ($n !== null){ |
|
| 91 | 91 | \array_unshift($this->replay, $n); |
| 92 | 92 | } |
| 93 | 93 | |
@@ -103,20 +103,20 @@ discard block |
||
| 103 | 103 | { |
| 104 | 104 | $result = ''; |
| 105 | 105 | $replay = []; |
| 106 | - for ($i = 0; $i < $size; $i++) { |
|
| 106 | + for ($i = 0; $i < $size; $i++){ |
|
| 107 | 107 | $n = $this->next(); |
| 108 | - if ($n !== null) { |
|
| 108 | + if ($n !== null){ |
|
| 109 | 109 | $replay[] = $n; |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | - if (!$n instanceof Byte) { |
|
| 112 | + if (!$n instanceof Byte){ |
|
| 113 | 113 | break; |
| 114 | 114 | } |
| 115 | 115 | |
| 116 | 116 | $result .= $n->char; |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | - foreach (\array_reverse($replay) as $n) { |
|
| 119 | + foreach (\array_reverse($replay) as $n){ |
|
| 120 | 120 | \array_unshift($this->replay, $n); |
| 121 | 121 | } |
| 122 | 122 | |
@@ -128,8 +128,8 @@ discard block |
||
| 128 | 128 | */ |
| 129 | 129 | public function replay(int $offset): void |
| 130 | 130 | { |
| 131 | - foreach ($this->buffer as $n) { |
|
| 132 | - if ($n->offset > $offset) { |
|
| 131 | + foreach ($this->buffer as $n){ |
|
| 132 | + if ($n->offset > $offset){ |
|
| 133 | 133 | $this->replay[] = $n; |
| 134 | 134 | } |
| 135 | 135 | } |
@@ -30,7 +30,8 @@ discard block |
||
| 30 | 30 | */ |
| 31 | 31 | public function getIterator(): \Traversable |
| 32 | 32 | { |
| 33 | - while ($n = $this->next()) { |
|
| 33 | + while ($n = $this->next()) |
|
| 34 | + { |
|
| 34 | 35 | yield $n; |
| 35 | 36 | } |
| 36 | 37 | } |
@@ -42,18 +43,23 @@ discard block |
||
| 42 | 43 | |
| 43 | 44 | public function next(): Byte|Token|null |
| 44 | 45 | { |
| 45 | - if ($this->replay !== []) { |
|
| 46 | + if ($this->replay !== []) |
|
| 47 | + { |
|
| 46 | 48 | $n = \array_shift($this->replay); |
| 47 | - } else { |
|
| 49 | + } |
|
| 50 | + else |
|
| 51 | + { |
|
| 48 | 52 | $n = $this->generator->current(); |
| 49 | - if ($n === null) { |
|
| 53 | + if ($n === null) |
|
| 54 | + { |
|
| 50 | 55 | return null; |
| 51 | 56 | } |
| 52 | 57 | $this->generator->next(); |
| 53 | 58 | $this->buffer[] = $n; |
| 54 | 59 | } |
| 55 | 60 | |
| 56 | - if ($n !== null && $n->offset !== null) { |
|
| 61 | + if ($n !== null && $n->offset !== null) |
|
| 62 | + { |
|
| 57 | 63 | $this->offset = $n->offset; |
| 58 | 64 | } |
| 59 | 65 | |
@@ -66,10 +72,14 @@ discard block |
||
| 66 | 72 | public function nextBytes(): string |
| 67 | 73 | { |
| 68 | 74 | $result = ''; |
| 69 | - while ($n = $this->next()) { |
|
| 70 | - if ($n instanceof Byte) { |
|
| 75 | + while ($n = $this->next()) |
|
| 76 | + { |
|
| 77 | + if ($n instanceof Byte) |
|
| 78 | + { |
|
| 71 | 79 | $result .= $n->char; |
| 72 | - } else { |
|
| 80 | + } |
|
| 81 | + else |
|
| 82 | + { |
|
| 73 | 83 | break; |
| 74 | 84 | } |
| 75 | 85 | } |
@@ -82,12 +92,14 @@ discard block |
||
| 82 | 92 | */ |
| 83 | 93 | public function lookahead(): Byte|Token|null |
| 84 | 94 | { |
| 85 | - if ($this->replay !== []) { |
|
| 95 | + if ($this->replay !== []) |
|
| 96 | + { |
|
| 86 | 97 | return $this->replay[0]; |
| 87 | 98 | } |
| 88 | 99 | |
| 89 | 100 | $n = $this->next(); |
| 90 | - if ($n !== null) { |
|
| 101 | + if ($n !== null) |
|
| 102 | + { |
|
| 91 | 103 | \array_unshift($this->replay, $n); |
| 92 | 104 | } |
| 93 | 105 | |
@@ -103,20 +115,24 @@ discard block |
||
| 103 | 115 | { |
| 104 | 116 | $result = ''; |
| 105 | 117 | $replay = []; |
| 106 | - for ($i = 0; $i < $size; $i++) { |
|
| 118 | + for ($i = 0; $i < $size; $i++) |
|
| 119 | + { |
|
| 107 | 120 | $n = $this->next(); |
| 108 | - if ($n !== null) { |
|
| 121 | + if ($n !== null) |
|
| 122 | + { |
|
| 109 | 123 | $replay[] = $n; |
| 110 | 124 | } |
| 111 | 125 | |
| 112 | - if (!$n instanceof Byte) { |
|
| 126 | + if (!$n instanceof Byte) |
|
| 127 | + { |
|
| 113 | 128 | break; |
| 114 | 129 | } |
| 115 | 130 | |
| 116 | 131 | $result .= $n->char; |
| 117 | 132 | } |
| 118 | 133 | |
| 119 | - foreach (\array_reverse($replay) as $n) { |
|
| 134 | + foreach (\array_reverse($replay) as $n) |
|
| 135 | + { |
|
| 120 | 136 | \array_unshift($this->replay, $n); |
| 121 | 137 | } |
| 122 | 138 | |
@@ -128,8 +144,10 @@ discard block |
||
| 128 | 144 | */ |
| 129 | 145 | public function replay(int $offset): void |
| 130 | 146 | { |
| 131 | - foreach ($this->buffer as $n) { |
|
| 132 | - if ($n->offset > $offset) { |
|
| 147 | + foreach ($this->buffer as $n) |
|
| 148 | + { |
|
| 149 | + if ($n->offset > $offset) |
|
| 150 | + { |
|
| 133 | 151 | $this->replay[] = $n; |
| 134 | 152 | } |
| 135 | 153 | } |
@@ -22,29 +22,29 @@ discard block |
||
| 22 | 22 | private readonly ReaderInterface $reader, |
| 23 | 23 | private readonly ListenerFactoryInterface $factory, |
| 24 | 24 | private readonly ?ListenerRegistryInterface $registry = null, |
| 25 | - ) { |
|
| 25 | + ){ |
|
| 26 | 26 | // Look for Spiral\Events\Attribute\Listener attribute only when ListenerRegistry provided by container |
| 27 | - if ($this->registry !== null) { |
|
| 27 | + if ($this->registry !== null){ |
|
| 28 | 28 | $listenerRegistry->addListener($this); |
| 29 | 29 | } |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | 32 | public function process(): void |
| 33 | 33 | { |
| 34 | - if ($this->registry === null) { |
|
| 34 | + if ($this->registry === null){ |
|
| 35 | 35 | return; |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | - if (!$this->collected) { |
|
| 38 | + if (!$this->collected){ |
|
| 39 | 39 | throw new \RuntimeException(\sprintf('Tokenizer did not finalize %s listener.', self::class)); |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | - foreach ($this->attributes as $listener => $attributes) { |
|
| 43 | - foreach ($attributes as $attribute) { |
|
| 42 | + foreach ($this->attributes as $listener => $attributes){ |
|
| 43 | + foreach ($attributes as $attribute){ |
|
| 44 | 44 | $method = $this->getMethod($listener, $attribute->method ?? '__invoke'); |
| 45 | 45 | |
| 46 | 46 | $events = (array)($attribute->event ?? $this->getEventFromTypeDeclaration($method)); |
| 47 | - foreach ($events as $event) { |
|
| 47 | + foreach ($events as $event){ |
|
| 48 | 48 | $this->registry->addListener( |
| 49 | 49 | event: $event, |
| 50 | 50 | listener: $this->factory->create($listener, $method->getName()), |
@@ -59,14 +59,14 @@ discard block |
||
| 59 | 59 | { |
| 60 | 60 | $attrs = $this->reader->getClassMetadata($class, Listener::class); |
| 61 | 61 | |
| 62 | - foreach ($attrs as $attr) { |
|
| 62 | + foreach ($attrs as $attr){ |
|
| 63 | 63 | $this->attributes[$class->getName()][] = $attr; |
| 64 | 64 | } |
| 65 | 65 | |
| 66 | - foreach ($class->getMethods() as $method) { |
|
| 66 | + foreach ($class->getMethods() as $method){ |
|
| 67 | 67 | $attrs = $this->reader->getFunctionMetadata($method, Listener::class); |
| 68 | 68 | |
| 69 | - foreach ($attrs as $attr) { |
|
| 69 | + foreach ($attrs as $attr){ |
|
| 70 | 70 | $attr->method = $method->getName(); |
| 71 | 71 | $this->attributes[$class->getName()][] = $attr; |
| 72 | 72 | } |
@@ -24,27 +24,33 @@ discard block |
||
| 24 | 24 | private readonly ?ListenerRegistryInterface $registry = null, |
| 25 | 25 | ) { |
| 26 | 26 | // Look for Spiral\Events\Attribute\Listener attribute only when ListenerRegistry provided by container |
| 27 | - if ($this->registry !== null) { |
|
| 27 | + if ($this->registry !== null) |
|
| 28 | + { |
|
| 28 | 29 | $listenerRegistry->addListener($this); |
| 29 | 30 | } |
| 30 | 31 | } |
| 31 | 32 | |
| 32 | 33 | public function process(): void |
| 33 | 34 | { |
| 34 | - if ($this->registry === null) { |
|
| 35 | + if ($this->registry === null) |
|
| 36 | + { |
|
| 35 | 37 | return; |
| 36 | 38 | } |
| 37 | 39 | |
| 38 | - if (!$this->collected) { |
|
| 40 | + if (!$this->collected) |
|
| 41 | + { |
|
| 39 | 42 | throw new \RuntimeException(\sprintf('Tokenizer did not finalize %s listener.', self::class)); |
| 40 | 43 | } |
| 41 | 44 | |
| 42 | - foreach ($this->attributes as $listener => $attributes) { |
|
| 43 | - foreach ($attributes as $attribute) { |
|
| 45 | + foreach ($this->attributes as $listener => $attributes) |
|
| 46 | + { |
|
| 47 | + foreach ($attributes as $attribute) |
|
| 48 | + { |
|
| 44 | 49 | $method = $this->getMethod($listener, $attribute->method ?? '__invoke'); |
| 45 | 50 | |
| 46 | 51 | $events = (array)($attribute->event ?? $this->getEventFromTypeDeclaration($method)); |
| 47 | - foreach ($events as $event) { |
|
| 52 | + foreach ($events as $event) |
|
| 53 | + { |
|
| 48 | 54 | $this->registry->addListener( |
| 49 | 55 | event: $event, |
| 50 | 56 | listener: $this->factory->create($listener, $method->getName()), |
@@ -59,14 +65,17 @@ discard block |
||
| 59 | 65 | { |
| 60 | 66 | $attrs = $this->reader->getClassMetadata($class, Listener::class); |
| 61 | 67 | |
| 62 | - foreach ($attrs as $attr) { |
|
| 68 | + foreach ($attrs as $attr) |
|
| 69 | + { |
|
| 63 | 70 | $this->attributes[$class->getName()][] = $attr; |
| 64 | 71 | } |
| 65 | 72 | |
| 66 | - foreach ($class->getMethods() as $method) { |
|
| 73 | + foreach ($class->getMethods() as $method) |
|
| 74 | + { |
|
| 67 | 75 | $attrs = $this->reader->getFunctionMetadata($method, Listener::class); |
| 68 | 76 | |
| 69 | - foreach ($attrs as $attr) { |
|
| 77 | + foreach ($attrs as $attr) |
|
| 78 | + { |
|
| 70 | 79 | $attr->method = $method->getName(); |
| 71 | 80 | $this->attributes[$class->getName()][] = $attr; |
| 72 | 81 | } |
@@ -64,7 +64,8 @@ discard block |
||
| 64 | 64 | |
| 65 | 65 | public function getLoader(): LoaderInterface |
| 66 | 66 | { |
| 67 | - if ($this->loader === null) { |
|
| 67 | + if ($this->loader === null) |
|
| 68 | + { |
|
| 68 | 69 | throw new EngineException('No associated loader found'); |
| 69 | 70 | } |
| 70 | 71 | |
@@ -76,13 +77,15 @@ discard block |
||
| 76 | 77 | */ |
| 77 | 78 | public function getBuilder(ContextInterface $context): Builder |
| 78 | 79 | { |
| 79 | - if ($this->builder === null) { |
|
| 80 | + if ($this->builder === null) |
|
| 81 | + { |
|
| 80 | 82 | throw new EngineException('No associated builder found'); |
| 81 | 83 | } |
| 82 | 84 | |
| 83 | 85 | // since view source support pre-processing we must ensure that context is always set |
| 84 | 86 | $loader = $this->builder->getLoader(); |
| 85 | - if ($loader instanceof StemplerLoader) { |
|
| 87 | + if ($loader instanceof StemplerLoader) |
|
| 88 | + { |
|
| 86 | 89 | $loader->setContext($context); |
| 87 | 90 | } |
| 88 | 91 | |
@@ -100,20 +103,27 @@ discard block |
||
| 100 | 103 | // cache key |
| 101 | 104 | $key = $this->cacheKey($view, $context); |
| 102 | 105 | |
| 103 | - if ($this->cache !== null && $this->cache->isFresh($key)) { |
|
| 106 | + if ($this->cache !== null && $this->cache->isFresh($key)) |
|
| 107 | + { |
|
| 104 | 108 | $this->cache->load($key); |
| 105 | - } elseif (!\class_exists($class)) { |
|
| 106 | - try { |
|
| 109 | + } |
|
| 110 | + elseif (!\class_exists($class)) |
|
| 111 | + { |
|
| 112 | + try |
|
| 113 | + { |
|
| 107 | 114 | $builder = $this->getBuilder($context); |
| 108 | 115 | |
| 109 | 116 | $result = $builder->compile($path); |
| 110 | - } catch (Throwable $e) { |
|
| 117 | + } |
|
| 118 | + catch (Throwable $e) |
|
| 119 | + { |
|
| 111 | 120 | throw new CompileException($e); |
| 112 | 121 | } |
| 113 | 122 | |
| 114 | 123 | $compiled = $this->compileClass($class, $result); |
| 115 | 124 | |
| 116 | - if ($this->cache !== null) { |
|
| 125 | + if ($this->cache !== null) |
|
| 126 | + { |
|
| 117 | 127 | $this->cache->write( |
| 118 | 128 | $key, |
| 119 | 129 | $compiled, |
@@ -126,13 +136,15 @@ discard block |
||
| 126 | 136 | $this->cache->load($key); |
| 127 | 137 | } |
| 128 | 138 | |
| 129 | - if (!\class_exists($class)) { |
|
| 139 | + if (!\class_exists($class)) |
|
| 140 | + { |
|
| 130 | 141 | // runtime initialization |
| 131 | 142 | eval('?>' . $compiled); |
| 132 | 143 | } |
| 133 | 144 | } |
| 134 | 145 | |
| 135 | - if (!\class_exists($class) || !\is_subclass_of($class, ViewInterface::class)) { |
|
| 146 | + if (!\class_exists($class) || !\is_subclass_of($class, ViewInterface::class)) |
|
| 147 | + { |
|
| 136 | 148 | throw new EngineException(\sprintf('Unable to load `%s`, cache might be corrupted.', $path)); |
| 137 | 149 | } |
| 138 | 150 | |
@@ -141,7 +153,8 @@ discard block |
||
| 141 | 153 | |
| 142 | 154 | public function reset(string $path, ContextInterface $context): void |
| 143 | 155 | { |
| 144 | - if ($this->cache === null) { |
|
| 156 | + if ($this->cache === null) |
|
| 157 | + { |
|
| 145 | 158 | return; |
| 146 | 159 | } |
| 147 | 160 | |
@@ -160,12 +173,15 @@ discard block |
||
| 160 | 173 | */ |
| 161 | 174 | public function makeSourceMap(string $path, ContextInterface $context): ?SourceMap |
| 162 | 175 | { |
| 163 | - try { |
|
| 176 | + try |
|
| 177 | + { |
|
| 164 | 178 | $builder = $this->getBuilder($context); |
| 165 | 179 | |
| 166 | 180 | // there is no need to cache sourcemaps since they are used during the exception only |
| 167 | 181 | return $builder->compile($path)->getSourceMap($builder->getLoader()); |
| 168 | - } catch (Throwable) { |
|
| 182 | + } |
|
| 183 | + catch (Throwable) |
|
| 184 | + { |
|
| 169 | 185 | return null; |
| 170 | 186 | } |
| 171 | 187 | } |
@@ -222,7 +238,8 @@ discard block |
||
| 222 | 238 | $builder = new Builder($loader); |
| 223 | 239 | |
| 224 | 240 | $directivesGroup = new DirectiveGroup(); |
| 225 | - foreach ($this->getDirectives() as $directive) { |
|
| 241 | + foreach ($this->getDirectives() as $directive) |
|
| 242 | + { |
|
| 226 | 243 | $directivesGroup->addDirective($directive); |
| 227 | 244 | } |
| 228 | 245 | |
@@ -253,7 +270,8 @@ discard block |
||
| 253 | 270 | $builder->getCompiler()->addRenderer(new DynamicRenderer(new DirectiveGroup($this->getDirectives()))); |
| 254 | 271 | |
| 255 | 272 | // ATS modifications |
| 256 | - foreach ($this->getVisitors(Builder::STAGE_PREPARE) as $visitor) { |
|
| 273 | + foreach ($this->getVisitors(Builder::STAGE_PREPARE) as $visitor) |
|
| 274 | + { |
|
| 257 | 275 | $builder->addVisitor($visitor, Builder::STAGE_PREPARE); |
| 258 | 276 | } |
| 259 | 277 | |
@@ -266,15 +284,18 @@ discard block |
||
| 266 | 284 | $builder->addVisitor(new ResolveImports($builder), Builder::STAGE_TRANSFORM); |
| 267 | 285 | $builder->addVisitor(new ExtendsParent($builder), Builder::STAGE_TRANSFORM); |
| 268 | 286 | |
| 269 | - foreach ($this->getVisitors(Builder::STAGE_TRANSFORM) as $visitor) { |
|
| 287 | + foreach ($this->getVisitors(Builder::STAGE_TRANSFORM) as $visitor) |
|
| 288 | + { |
|
| 270 | 289 | $builder->addVisitor($visitor, Builder::STAGE_TRANSFORM); |
| 271 | 290 | } |
| 272 | 291 | |
| 273 | - foreach ($this->getVisitors(Builder::STAGE_FINALIZE) as $visitor) { |
|
| 292 | + foreach ($this->getVisitors(Builder::STAGE_FINALIZE) as $visitor) |
|
| 293 | + { |
|
| 274 | 294 | $builder->addVisitor($visitor, Builder::STAGE_FINALIZE); |
| 275 | 295 | } |
| 276 | 296 | |
| 277 | - foreach ($this->getVisitors(Builder::STAGE_COMPILE) as $visitor) { |
|
| 297 | + foreach ($this->getVisitors(Builder::STAGE_COMPILE) as $visitor) |
|
| 298 | + { |
|
| 278 | 299 | $builder->addVisitor($visitor, Builder::STAGE_COMPILE); |
| 279 | 300 | } |
| 280 | 301 | |
@@ -287,8 +308,10 @@ discard block |
||
| 287 | 308 | private function getVisitors(int $stage): iterable |
| 288 | 309 | { |
| 289 | 310 | $result = []; |
| 290 | - foreach ($this->config->getVisitors($stage) as $visitor) { |
|
| 291 | - if ($visitor instanceof Autowire) { |
|
| 311 | + foreach ($this->config->getVisitors($stage) as $visitor) |
|
| 312 | + { |
|
| 313 | + if ($visitor instanceof Autowire) |
|
| 314 | + { |
|
| 292 | 315 | $result[] = $visitor->resolve($this->container->get(FactoryInterface::class)); |
| 293 | 316 | continue; |
| 294 | 317 | } |
@@ -305,8 +328,10 @@ discard block |
||
| 305 | 328 | private function getProcessors(): iterable |
| 306 | 329 | { |
| 307 | 330 | $result = []; |
| 308 | - foreach ($this->config->getProcessors() as $processor) { |
|
| 309 | - if ($processor instanceof Autowire) { |
|
| 331 | + foreach ($this->config->getProcessors() as $processor) |
|
| 332 | + { |
|
| 333 | + if ($processor instanceof Autowire) |
|
| 334 | + { |
|
| 310 | 335 | $result[] = $processor->resolve($this->container->get(FactoryInterface::class)); |
| 311 | 336 | continue; |
| 312 | 337 | } |
@@ -323,8 +348,10 @@ discard block |
||
| 323 | 348 | private function getDirectives(): iterable |
| 324 | 349 | { |
| 325 | 350 | $result = []; |
| 326 | - foreach ($this->config->getDirectives() as $directive) { |
|
| 327 | - if ($directive instanceof Autowire) { |
|
| 351 | + foreach ($this->config->getDirectives() as $directive) |
|
| 352 | + { |
|
| 353 | + if ($directive instanceof Autowire) |
|
| 354 | + { |
|
| 328 | 355 | $result[] = $directive->resolve($this->container->get(FactoryInterface::class)); |
| 329 | 356 | continue; |
| 330 | 357 | } |
@@ -45,7 +45,7 @@ discard block |
||
| 45 | 45 | private readonly ContainerInterface $container, |
| 46 | 46 | private readonly StemplerConfig $config, |
| 47 | 47 | private readonly ?StemplerCache $cache = null |
| 48 | - ) { |
|
| 48 | + ){ |
|
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | public function getContainer(): ContainerInterface |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | |
| 65 | 65 | public function getLoader(): LoaderInterface |
| 66 | 66 | { |
| 67 | - if ($this->loader === null) { |
|
| 67 | + if ($this->loader === null){ |
|
| 68 | 68 | throw new EngineException('No associated loader found'); |
| 69 | 69 | } |
| 70 | 70 | |
@@ -76,13 +76,13 @@ discard block |
||
| 76 | 76 | */ |
| 77 | 77 | public function getBuilder(ContextInterface $context): Builder |
| 78 | 78 | { |
| 79 | - if ($this->builder === null) { |
|
| 79 | + if ($this->builder === null){ |
|
| 80 | 80 | throw new EngineException('No associated builder found'); |
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | // since view source support pre-processing we must ensure that context is always set |
| 84 | 84 | $loader = $this->builder->getLoader(); |
| 85 | - if ($loader instanceof StemplerLoader) { |
|
| 85 | + if ($loader instanceof StemplerLoader){ |
|
| 86 | 86 | $loader->setContext($context); |
| 87 | 87 | } |
| 88 | 88 | |
@@ -100,20 +100,20 @@ discard block |
||
| 100 | 100 | // cache key |
| 101 | 101 | $key = $this->cacheKey($view, $context); |
| 102 | 102 | |
| 103 | - if ($this->cache !== null && $this->cache->isFresh($key)) { |
|
| 103 | + if ($this->cache !== null && $this->cache->isFresh($key)){ |
|
| 104 | 104 | $this->cache->load($key); |
| 105 | - } elseif (!\class_exists($class)) { |
|
| 106 | - try { |
|
| 105 | + } elseif (!\class_exists($class)){ |
|
| 106 | + try{ |
|
| 107 | 107 | $builder = $this->getBuilder($context); |
| 108 | 108 | |
| 109 | 109 | $result = $builder->compile($path); |
| 110 | - } catch (Throwable $e) { |
|
| 110 | + }catch (Throwable $e){ |
|
| 111 | 111 | throw new CompileException($e); |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | 114 | $compiled = $this->compileClass($class, $result); |
| 115 | 115 | |
| 116 | - if ($this->cache !== null) { |
|
| 116 | + if ($this->cache !== null){ |
|
| 117 | 117 | $this->cache->write( |
| 118 | 118 | $key, |
| 119 | 119 | $compiled, |
@@ -126,13 +126,13 @@ discard block |
||
| 126 | 126 | $this->cache->load($key); |
| 127 | 127 | } |
| 128 | 128 | |
| 129 | - if (!\class_exists($class)) { |
|
| 129 | + if (!\class_exists($class)){ |
|
| 130 | 130 | // runtime initialization |
| 131 | - eval('?>' . $compiled); |
|
| 131 | + eval('?>'.$compiled); |
|
| 132 | 132 | } |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | - if (!\class_exists($class) || !\is_subclass_of($class, ViewInterface::class)) { |
|
| 135 | + if (!\class_exists($class) || !\is_subclass_of($class, ViewInterface::class)){ |
|
| 136 | 136 | throw new EngineException(\sprintf('Unable to load `%s`, cache might be corrupted.', $path)); |
| 137 | 137 | } |
| 138 | 138 | |
@@ -141,7 +141,7 @@ discard block |
||
| 141 | 141 | |
| 142 | 142 | public function reset(string $path, ContextInterface $context): void |
| 143 | 143 | { |
| 144 | - if ($this->cache === null) { |
|
| 144 | + if ($this->cache === null){ |
|
| 145 | 145 | return; |
| 146 | 146 | } |
| 147 | 147 | |
@@ -160,12 +160,12 @@ discard block |
||
| 160 | 160 | */ |
| 161 | 161 | public function makeSourceMap(string $path, ContextInterface $context): ?SourceMap |
| 162 | 162 | { |
| 163 | - try { |
|
| 163 | + try{ |
|
| 164 | 164 | $builder = $this->getBuilder($context); |
| 165 | 165 | |
| 166 | 166 | // there is no need to cache sourcemaps since they are used during the exception only |
| 167 | 167 | return $builder->compile($path)->getSourceMap($builder->getLoader()); |
| 168 | - } catch (Throwable) { |
|
| 168 | + }catch (Throwable){ |
|
| 169 | 169 | return null; |
| 170 | 170 | } |
| 171 | 171 | } |
@@ -201,7 +201,7 @@ discard block |
||
| 201 | 201 | */ |
| 202 | 202 | private function className(ViewSource $source, ContextInterface $context): string |
| 203 | 203 | { |
| 204 | - return $this->classPrefix . $this->cacheKey($source, $context); |
|
| 204 | + return $this->classPrefix.$this->cacheKey($source, $context); |
|
| 205 | 205 | } |
| 206 | 206 | |
| 207 | 207 | private function cacheKey(ViewSource $source, ContextInterface $context): string |
@@ -221,7 +221,7 @@ discard block |
||
| 221 | 221 | $builder = new Builder($loader); |
| 222 | 222 | |
| 223 | 223 | $directivesGroup = new DirectiveGroup(); |
| 224 | - foreach ($this->getDirectives() as $directive) { |
|
| 224 | + foreach ($this->getDirectives() as $directive){ |
|
| 225 | 225 | $directivesGroup->addDirective($directive); |
| 226 | 226 | } |
| 227 | 227 | |
@@ -252,7 +252,7 @@ discard block |
||
| 252 | 252 | $builder->getCompiler()->addRenderer(new DynamicRenderer(new DirectiveGroup($this->getDirectives()))); |
| 253 | 253 | |
| 254 | 254 | // ATS modifications |
| 255 | - foreach ($this->getVisitors(Builder::STAGE_PREPARE) as $visitor) { |
|
| 255 | + foreach ($this->getVisitors(Builder::STAGE_PREPARE) as $visitor){ |
|
| 256 | 256 | $builder->addVisitor($visitor, Builder::STAGE_PREPARE); |
| 257 | 257 | } |
| 258 | 258 | |
@@ -265,15 +265,15 @@ discard block |
||
| 265 | 265 | $builder->addVisitor(new ResolveImports($builder), Builder::STAGE_TRANSFORM); |
| 266 | 266 | $builder->addVisitor(new ExtendsParent($builder), Builder::STAGE_TRANSFORM); |
| 267 | 267 | |
| 268 | - foreach ($this->getVisitors(Builder::STAGE_TRANSFORM) as $visitor) { |
|
| 268 | + foreach ($this->getVisitors(Builder::STAGE_TRANSFORM) as $visitor){ |
|
| 269 | 269 | $builder->addVisitor($visitor, Builder::STAGE_TRANSFORM); |
| 270 | 270 | } |
| 271 | 271 | |
| 272 | - foreach ($this->getVisitors(Builder::STAGE_FINALIZE) as $visitor) { |
|
| 272 | + foreach ($this->getVisitors(Builder::STAGE_FINALIZE) as $visitor){ |
|
| 273 | 273 | $builder->addVisitor($visitor, Builder::STAGE_FINALIZE); |
| 274 | 274 | } |
| 275 | 275 | |
| 276 | - foreach ($this->getVisitors(Builder::STAGE_COMPILE) as $visitor) { |
|
| 276 | + foreach ($this->getVisitors(Builder::STAGE_COMPILE) as $visitor){ |
|
| 277 | 277 | $builder->addVisitor($visitor, Builder::STAGE_COMPILE); |
| 278 | 278 | } |
| 279 | 279 | |
@@ -286,8 +286,8 @@ discard block |
||
| 286 | 286 | private function getVisitors(int $stage): iterable |
| 287 | 287 | { |
| 288 | 288 | $result = []; |
| 289 | - foreach ($this->config->getVisitors($stage) as $visitor) { |
|
| 290 | - if ($visitor instanceof Autowire) { |
|
| 289 | + foreach ($this->config->getVisitors($stage) as $visitor){ |
|
| 290 | + if ($visitor instanceof Autowire){ |
|
| 291 | 291 | $result[] = $visitor->resolve($this->container->get(FactoryInterface::class)); |
| 292 | 292 | continue; |
| 293 | 293 | } |
@@ -304,8 +304,8 @@ discard block |
||
| 304 | 304 | private function getProcessors(): iterable |
| 305 | 305 | { |
| 306 | 306 | $result = []; |
| 307 | - foreach ($this->config->getProcessors() as $processor) { |
|
| 308 | - if ($processor instanceof Autowire) { |
|
| 307 | + foreach ($this->config->getProcessors() as $processor){ |
|
| 308 | + if ($processor instanceof Autowire){ |
|
| 309 | 309 | $result[] = $processor->resolve($this->container->get(FactoryInterface::class)); |
| 310 | 310 | continue; |
| 311 | 311 | } |
@@ -322,8 +322,8 @@ discard block |
||
| 322 | 322 | private function getDirectives(): iterable |
| 323 | 323 | { |
| 324 | 324 | $result = []; |
| 325 | - foreach ($this->config->getDirectives() as $directive) { |
|
| 326 | - if ($directive instanceof Autowire) { |
|
| 325 | + foreach ($this->config->getDirectives() as $directive){ |
|
| 326 | + if ($directive instanceof Autowire){ |
|
| 327 | 327 | $result[] = $directive->resolve($this->container->get(FactoryInterface::class)); |
| 328 | 328 | continue; |
| 329 | 329 | } |
@@ -42,7 +42,7 @@ discard block |
||
| 42 | 42 | 'root' => __DIR__, |
| 43 | 43 | ])->run(); |
| 44 | 44 | |
| 45 | - $d = new class() implements DispatcherInterface { |
|
| 45 | + $d = new class() implements DispatcherInterface{ |
|
| 46 | 46 | public $fired = false; |
| 47 | 47 | |
| 48 | 48 | public function canServe(): bool |
@@ -71,7 +71,7 @@ discard block |
||
| 71 | 71 | 'root' => __DIR__, |
| 72 | 72 | ])->run(); |
| 73 | 73 | |
| 74 | - $d = new class() implements DispatcherInterface { |
|
| 74 | + $d = new class() implements DispatcherInterface{ |
|
| 75 | 75 | public function canServe(): bool |
| 76 | 76 | { |
| 77 | 77 | return true; |
@@ -109,19 +109,19 @@ discard block |
||
| 109 | 109 | 'root' => __DIR__, |
| 110 | 110 | ]); |
| 111 | 111 | |
| 112 | - $kernel->booting(static function (TestCore $core) { |
|
| 112 | + $kernel->booting(static function (TestCore $core){ |
|
| 113 | 113 | $core->getContainer()->bind('abc', 'foo'); |
| 114 | 114 | }); |
| 115 | 115 | |
| 116 | - $kernel->booting(static function (TestCore $core) { |
|
| 116 | + $kernel->booting(static function (TestCore $core){ |
|
| 117 | 117 | $core->getContainer()->bind('bcd', 'foo'); |
| 118 | 118 | }); |
| 119 | 119 | |
| 120 | - $kernel->booted( static function (TestCore $core) { |
|
| 120 | + $kernel->booted(static function (TestCore $core){ |
|
| 121 | 121 | $core->getContainer()->bind('cde', 'foo'); |
| 122 | 122 | }); |
| 123 | 123 | |
| 124 | - $kernel->booted( static function (TestCore $core) { |
|
| 124 | + $kernel->booted(static function (TestCore $core){ |
|
| 125 | 125 | $core->getContainer()->bind('def', 'foo'); |
| 126 | 126 | }); |
| 127 | 127 | |
@@ -144,7 +144,7 @@ discard block |
||
| 144 | 144 | |
| 145 | 145 | public function testEventsShouldBeDispatched(): void |
| 146 | 146 | { |
| 147 | - $testDispatcher = new class implements DispatcherInterface { |
|
| 147 | + $testDispatcher = new class implements DispatcherInterface{ |
|
| 148 | 148 | public function canServe(): bool |
| 149 | 149 | { |
| 150 | 150 | return true; |
@@ -156,7 +156,7 @@ discard block |
||
| 156 | 156 | }; |
| 157 | 157 | |
| 158 | 158 | $container = new Container(); |
| 159 | - $kernel = TestCore::create(directories: ['root' => __DIR__,], container: $container) |
|
| 159 | + $kernel = TestCore::create(directories: ['root' => __DIR__, ], container: $container) |
|
| 160 | 160 | ->addDispatcher($testDispatcher); |
| 161 | 161 | |
| 162 | 162 | $dispatcher = $this->createMock(EventDispatcherInterface::class); |
@@ -177,7 +177,7 @@ discard block |
||
| 177 | 177 | public function testDispatcherNotFoundEventShouldBeDispatched(): void |
| 178 | 178 | { |
| 179 | 179 | $container = new Container(); |
| 180 | - $kernel = TestCore::create(directories: ['root' => __DIR__,], container: $container); |
|
| 180 | + $kernel = TestCore::create(directories: ['root' => __DIR__, ], container: $container); |
|
| 181 | 181 | |
| 182 | 182 | $dispatcher = $this->createMock(EventDispatcherInterface::class); |
| 183 | 183 | $dispatcher |
@@ -42,7 +42,8 @@ discard block |
||
| 42 | 42 | 'root' => __DIR__, |
| 43 | 43 | ])->run(); |
| 44 | 44 | |
| 45 | - $d = new class() implements DispatcherInterface { |
|
| 45 | + $d = new class() implements DispatcherInterface |
|
| 46 | + { |
|
| 46 | 47 | public $fired = false; |
| 47 | 48 | |
| 48 | 49 | public function canServe(): bool |
@@ -71,7 +72,8 @@ discard block |
||
| 71 | 72 | 'root' => __DIR__, |
| 72 | 73 | ])->run(); |
| 73 | 74 | |
| 74 | - $d = new class() implements DispatcherInterface { |
|
| 75 | + $d = new class() implements DispatcherInterface |
|
| 76 | + { |
|
| 75 | 77 | public function canServe(): bool |
| 76 | 78 | { |
| 77 | 79 | return true; |
@@ -109,19 +111,23 @@ discard block |
||
| 109 | 111 | 'root' => __DIR__, |
| 110 | 112 | ]); |
| 111 | 113 | |
| 112 | - $kernel->booting(static function (TestCore $core) { |
|
| 114 | + $kernel->booting(static function (TestCore $core) |
|
| 115 | + { |
|
| 113 | 116 | $core->getContainer()->bind('abc', 'foo'); |
| 114 | 117 | }); |
| 115 | 118 | |
| 116 | - $kernel->booting(static function (TestCore $core) { |
|
| 119 | + $kernel->booting(static function (TestCore $core) |
|
| 120 | + { |
|
| 117 | 121 | $core->getContainer()->bind('bcd', 'foo'); |
| 118 | 122 | }); |
| 119 | 123 | |
| 120 | - $kernel->booted( static function (TestCore $core) { |
|
| 124 | + $kernel->booted( static function (TestCore $core) |
|
| 125 | + { |
|
| 121 | 126 | $core->getContainer()->bind('cde', 'foo'); |
| 122 | 127 | }); |
| 123 | 128 | |
| 124 | - $kernel->booted( static function (TestCore $core) { |
|
| 129 | + $kernel->booted( static function (TestCore $core) |
|
| 130 | + { |
|
| 125 | 131 | $core->getContainer()->bind('def', 'foo'); |
| 126 | 132 | }); |
| 127 | 133 | |
@@ -144,7 +150,8 @@ discard block |
||
| 144 | 150 | |
| 145 | 151 | public function testEventsShouldBeDispatched(): void |
| 146 | 152 | { |
| 147 | - $testDispatcher = new class implements DispatcherInterface { |
|
| 153 | + $testDispatcher = new class implements DispatcherInterface |
|
| 154 | + { |
|
| 148 | 155 | public function canServe(): bool |
| 149 | 156 | { |
| 150 | 157 | return true; |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | |
| 16 | 16 | public function __construct( |
| 17 | 17 | private readonly InvokerInterface $invoker |
| 18 | - ) { |
|
| 18 | + ){ |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | /** |
@@ -31,7 +31,7 @@ discard block |
||
| 31 | 31 | */ |
| 32 | 32 | public function getValidation(string $name, array $params = []): ValidationInterface |
| 33 | 33 | { |
| 34 | - if (!isset($this->resolvers[$name])) { |
|
| 34 | + if (!isset($this->resolvers[$name])){ |
|
| 35 | 35 | throw new ValidationException(\sprintf('Validation with name `%s` is not registered.', $name)); |
| 36 | 36 | } |
| 37 | 37 | |
@@ -31,7 +31,8 @@ |
||
| 31 | 31 | */ |
| 32 | 32 | public function getValidation(string $name, array $params = []): ValidationInterface |
| 33 | 33 | { |
| 34 | - if (!isset($this->resolvers[$name])) { |
|
| 34 | + if (!isset($this->resolvers[$name])) |
|
| 35 | + { |
|
| 35 | 36 | throw new ValidationException(\sprintf('Validation with name `%s` is not registered.', $name)); |
| 36 | 37 | } |
| 37 | 38 | |
@@ -26,7 +26,7 @@ discard block |
||
| 26 | 26 | |
| 27 | 27 | public function __construct( |
| 28 | 28 | private readonly ConfiguratorInterface $config |
| 29 | - ) { |
|
| 29 | + ){ |
|
| 30 | 30 | } |
| 31 | 31 | |
| 32 | 32 | public function init(): void |
@@ -41,7 +41,7 @@ discard block |
||
| 41 | 41 | */ |
| 42 | 42 | public function setDefaultValidator(string $name): void |
| 43 | 43 | { |
| 44 | - if ($this->config->getConfig(ValidationConfig::CONFIG)['defaultValidator'] === null) { |
|
| 44 | + if ($this->config->getConfig(ValidationConfig::CONFIG)['defaultValidator'] === null){ |
|
| 45 | 45 | $this->config->modify(ValidationConfig::CONFIG, new Set('defaultValidator', $name)); |
| 46 | 46 | } |
| 47 | 47 | } |
@@ -53,7 +53,7 @@ discard block |
||
| 53 | 53 | ValidationConfig $config, |
| 54 | 54 | ValidationProviderInterface $provider |
| 55 | 55 | ): ValidationInterface { |
| 56 | - if ($config->getDefaultValidator() === null) { |
|
| 56 | + if ($config->getDefaultValidator() === null){ |
|
| 57 | 57 | throw new ValidationException('Default Validator is not configured.'); |
| 58 | 58 | } |
| 59 | 59 | |
@@ -41,7 +41,8 @@ discard block |
||
| 41 | 41 | */ |
| 42 | 42 | public function setDefaultValidator(string $name): void |
| 43 | 43 | { |
| 44 | - if ($this->config->getConfig(ValidationConfig::CONFIG)['defaultValidator'] === null) { |
|
| 44 | + if ($this->config->getConfig(ValidationConfig::CONFIG)['defaultValidator'] === null) |
|
| 45 | + { |
|
| 45 | 46 | $this->config->modify(ValidationConfig::CONFIG, new Set('defaultValidator', $name)); |
| 46 | 47 | } |
| 47 | 48 | } |
@@ -53,7 +54,8 @@ discard block |
||
| 53 | 54 | ValidationConfig $config, |
| 54 | 55 | ValidationProviderInterface $provider |
| 55 | 56 | ): ValidationInterface { |
| 56 | - if ($config->getDefaultValidator() === null) { |
|
| 57 | + if ($config->getDefaultValidator() === null) |
|
| 58 | + { |
|
| 57 | 59 | throw new ValidationException('Default Validator is not configured.'); |
| 58 | 60 | } |
| 59 | 61 | |
@@ -27,15 +27,15 @@ |
||
| 27 | 27 | public function __construct( |
| 28 | 28 | ContainerInterface $container, |
| 29 | 29 | ?ErrorsRendererInterface $renderErrors = null |
| 30 | - ) { |
|
| 30 | + ){ |
|
| 31 | 31 | $this->renderErrors = $renderErrors ?? $container->get(JsonErrorsRenderer::class); |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | 34 | public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
| 35 | 35 | { |
| 36 | - try { |
|
| 36 | + try{ |
|
| 37 | 37 | return $handler->handle($request); |
| 38 | - } catch (ValidationException $e) { |
|
| 38 | + }catch (ValidationException $e){ |
|
| 39 | 39 | return $this->renderErrors->render($e->errors, $e->context); |
| 40 | 40 | } |
| 41 | 41 | } |
@@ -33,9 +33,12 @@ |
||
| 33 | 33 | |
| 34 | 34 | public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
| 35 | 35 | { |
| 36 | - try { |
|
| 36 | + try |
|
| 37 | + { |
|
| 37 | 38 | return $handler->handle($request); |
| 38 | - } catch (ValidationException $e) { |
|
| 39 | + } |
|
| 40 | + catch (ValidationException $e) |
|
| 41 | + { |
|
| 39 | 42 | return $this->renderErrors->render($e->errors, $e->context); |
| 40 | 43 | } |
| 41 | 44 | } |