@@ -44,11 +44,11 @@ discard block |
||
| 44 | 44 | */ |
| 45 | 45 | public function create($duration): DateInterval |
| 46 | 46 | { |
| 47 | - try { |
|
| 47 | + try{ |
|
| 48 | 48 | return $this->createOrFail($duration); |
| 49 | - } catch (InvalidArgumentException $e) { |
|
| 49 | + }catch (InvalidArgumentException $e){ |
|
| 50 | 50 | throw $e; |
| 51 | - } catch (Throwable $e) { |
|
| 51 | + }catch (Throwable $e){ |
|
| 52 | 52 | throw new InvalidArgumentException($e->getMessage(), (int)$e->getCode(), $e); |
| 53 | 53 | } |
| 54 | 54 | } |
@@ -69,7 +69,7 @@ discard block |
||
| 69 | 69 | */ |
| 70 | 70 | private function createOrFail($duration): DateInterval |
| 71 | 71 | { |
| 72 | - switch (true) { |
|
| 72 | + switch (true){ |
|
| 73 | 73 | case $duration instanceof DateInterval: |
| 74 | 74 | return $duration; |
| 75 | 75 | |
@@ -80,7 +80,7 @@ discard block |
||
| 80 | 80 | return new DateInterval($duration); |
| 81 | 81 | |
| 82 | 82 | case \is_int($duration): |
| 83 | - return new DateInterval('PT' . $duration . 'S'); |
|
| 83 | + return new DateInterval('PT'.$duration.'S'); |
|
| 84 | 84 | |
| 85 | 85 | case $duration === null: |
| 86 | 86 | return new DateInterval('PT0S'); |
@@ -44,11 +44,16 @@ discard block |
||
| 44 | 44 | */ |
| 45 | 45 | public function create($duration): DateInterval |
| 46 | 46 | { |
| 47 | - try { |
|
| 47 | + try |
|
| 48 | + { |
|
| 48 | 49 | return $this->createOrFail($duration); |
| 49 | - } catch (InvalidArgumentException $e) { |
|
| 50 | + } |
|
| 51 | + catch (InvalidArgumentException $e) |
|
| 52 | + { |
|
| 50 | 53 | throw $e; |
| 51 | - } catch (Throwable $e) { |
|
| 54 | + } |
|
| 55 | + catch (Throwable $e) |
|
| 56 | + { |
|
| 52 | 57 | throw new InvalidArgumentException($e->getMessage(), (int)$e->getCode(), $e); |
| 53 | 58 | } |
| 54 | 59 | } |
@@ -69,7 +74,8 @@ discard block |
||
| 69 | 74 | */ |
| 70 | 75 | private function createOrFail($duration): DateInterval |
| 71 | 76 | { |
| 72 | - switch (true) { |
|
| 77 | + switch (true) |
|
| 78 | + { |
|
| 73 | 79 | case $duration instanceof DateInterval: |
| 74 | 80 | return $duration; |
| 75 | 81 | |
@@ -92,11 +92,11 @@ discard block |
||
| 92 | 92 | */ |
| 93 | 93 | public function getPage(): int |
| 94 | 94 | { |
| 95 | - if ($this->pageNumber < 1) { |
|
| 95 | + if ($this->pageNumber < 1){ |
|
| 96 | 96 | return 1; |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | - if ($this->pageNumber > $this->countPages) { |
|
| 99 | + if ($this->pageNumber > $this->countPages){ |
|
| 100 | 100 | return $this->countPages; |
| 101 | 101 | } |
| 102 | 102 | |
@@ -117,7 +117,7 @@ discard block |
||
| 117 | 117 | public function paginate(PaginableInterface $target): PaginatorInterface |
| 118 | 118 | { |
| 119 | 119 | $paginator = clone $this; |
| 120 | - if ($target instanceof Countable && $paginator->count === 0) { |
|
| 120 | + if ($target instanceof Countable && $paginator->count === 0){ |
|
| 121 | 121 | $paginator->setCount($target->count()); |
| 122 | 122 | } |
| 123 | 123 | |
@@ -145,7 +145,7 @@ discard block |
||
| 145 | 145 | */ |
| 146 | 146 | public function countDisplayed(): int |
| 147 | 147 | { |
| 148 | - if ($this->getPage() == $this->countPages) { |
|
| 148 | + if ($this->getPage() == $this->countPages){ |
|
| 149 | 149 | return $this->count - $this->getOffset(); |
| 150 | 150 | } |
| 151 | 151 | |
@@ -165,7 +165,7 @@ discard block |
||
| 165 | 165 | */ |
| 166 | 166 | public function nextPage() |
| 167 | 167 | { |
| 168 | - if ($this->getPage() != $this->countPages) { |
|
| 168 | + if ($this->getPage() != $this->countPages){ |
|
| 169 | 169 | return $this->getPage() + 1; |
| 170 | 170 | } |
| 171 | 171 | |
@@ -177,7 +177,7 @@ discard block |
||
| 177 | 177 | */ |
| 178 | 178 | public function previousPage() |
| 179 | 179 | { |
| 180 | - if ($this->getPage() > 1) { |
|
| 180 | + if ($this->getPage() > 1){ |
|
| 181 | 181 | return $this->getPage() - 1; |
| 182 | 182 | } |
| 183 | 183 | |
@@ -192,9 +192,9 @@ discard block |
||
| 192 | 192 | private function setCount(int $count): self |
| 193 | 193 | { |
| 194 | 194 | $this->count = max($count, 0); |
| 195 | - if ($this->count > 0) { |
|
| 195 | + if ($this->count > 0){ |
|
| 196 | 196 | $this->countPages = (int)ceil($this->count / $this->limit); |
| 197 | - } else { |
|
| 197 | + }else{ |
|
| 198 | 198 | $this->countPages = 1; |
| 199 | 199 | } |
| 200 | 200 | |
@@ -92,11 +92,13 @@ discard block |
||
| 92 | 92 | */ |
| 93 | 93 | public function getPage(): int |
| 94 | 94 | { |
| 95 | - if ($this->pageNumber < 1) { |
|
| 95 | + if ($this->pageNumber < 1) |
|
| 96 | + { |
|
| 96 | 97 | return 1; |
| 97 | 98 | } |
| 98 | 99 | |
| 99 | - if ($this->pageNumber > $this->countPages) { |
|
| 100 | + if ($this->pageNumber > $this->countPages) |
|
| 101 | + { |
|
| 100 | 102 | return $this->countPages; |
| 101 | 103 | } |
| 102 | 104 | |
@@ -117,7 +119,8 @@ discard block |
||
| 117 | 119 | public function paginate(PaginableInterface $target): PaginatorInterface |
| 118 | 120 | { |
| 119 | 121 | $paginator = clone $this; |
| 120 | - if ($target instanceof Countable && $paginator->count === 0) { |
|
| 122 | + if ($target instanceof Countable && $paginator->count === 0) |
|
| 123 | + { |
|
| 121 | 124 | $paginator->setCount($target->count()); |
| 122 | 125 | } |
| 123 | 126 | |
@@ -145,7 +148,8 @@ discard block |
||
| 145 | 148 | */ |
| 146 | 149 | public function countDisplayed(): int |
| 147 | 150 | { |
| 148 | - if ($this->getPage() == $this->countPages) { |
|
| 151 | + if ($this->getPage() == $this->countPages) |
|
| 152 | + { |
|
| 149 | 153 | return $this->count - $this->getOffset(); |
| 150 | 154 | } |
| 151 | 155 | |
@@ -165,7 +169,8 @@ discard block |
||
| 165 | 169 | */ |
| 166 | 170 | public function nextPage() |
| 167 | 171 | { |
| 168 | - if ($this->getPage() != $this->countPages) { |
|
| 172 | + if ($this->getPage() != $this->countPages) |
|
| 173 | + { |
|
| 169 | 174 | return $this->getPage() + 1; |
| 170 | 175 | } |
| 171 | 176 | |
@@ -177,7 +182,8 @@ discard block |
||
| 177 | 182 | */ |
| 178 | 183 | public function previousPage() |
| 179 | 184 | { |
| 180 | - if ($this->getPage() > 1) { |
|
| 185 | + if ($this->getPage() > 1) |
|
| 186 | + { |
|
| 181 | 187 | return $this->getPage() - 1; |
| 182 | 188 | } |
| 183 | 189 | |
@@ -192,9 +198,12 @@ discard block |
||
| 192 | 198 | private function setCount(int $count): self |
| 193 | 199 | { |
| 194 | 200 | $this->count = max($count, 0); |
| 195 | - if ($this->count > 0) { |
|
| 201 | + if ($this->count > 0) |
|
| 202 | + { |
|
| 196 | 203 | $this->countPages = (int)ceil($this->count / $this->limit); |
| 197 | - } else { |
|
| 204 | + } |
|
| 205 | + else |
|
| 206 | + { |
|
| 198 | 207 | $this->countPages = 1; |
| 199 | 208 | } |
| 200 | 209 | |
@@ -48,10 +48,10 @@ discard block |
||
| 48 | 48 | */ |
| 49 | 49 | protected function availableReflections(): Generator |
| 50 | 50 | { |
| 51 | - foreach ($this->finder->getIterator() as $file) { |
|
| 51 | + foreach ($this->finder->getIterator() as $file){ |
|
| 52 | 52 | $reflection = new ReflectionFile((string)$file); |
| 53 | 53 | |
| 54 | - if ($reflection->hasIncludes()) { |
|
| 54 | + if ($reflection->hasIncludes()){ |
|
| 55 | 55 | // We are not analyzing files which has includes, it's not safe to require such reflections |
| 56 | 56 | $this->getLogger()->warning( |
| 57 | 57 | sprintf('File `%s` has includes and excluded from analysis', $file), |
@@ -77,8 +77,8 @@ discard block |
||
| 77 | 77 | */ |
| 78 | 78 | protected function classReflection(string $class): ReflectionClass |
| 79 | 79 | { |
| 80 | - $loader = static function ($class) { |
|
| 81 | - if ($class === LocatorException::class) { |
|
| 80 | + $loader = static function ($class){ |
|
| 81 | + if ($class === LocatorException::class){ |
|
| 82 | 82 | return; |
| 83 | 83 | } |
| 84 | 84 | |
@@ -88,12 +88,12 @@ discard block |
||
| 88 | 88 | //To suspend class dependency exception |
| 89 | 89 | spl_autoload_register($loader); |
| 90 | 90 | |
| 91 | - try { |
|
| 91 | + try{ |
|
| 92 | 92 | //In some cases reflection can thrown an exception if class invalid or can not be loaded, |
| 93 | 93 | //we are going to handle such exception and convert it soft exception |
| 94 | 94 | return new ReflectionClass($class); |
| 95 | - } catch (Throwable $e) { |
|
| 96 | - if ($e instanceof LocatorException && $e->getPrevious() != null) { |
|
| 95 | + }catch (Throwable $e){ |
|
| 96 | + if ($e instanceof LocatorException && $e->getPrevious() != null){ |
|
| 97 | 97 | $e = $e->getPrevious(); |
| 98 | 98 | } |
| 99 | 99 | |
@@ -109,7 +109,7 @@ discard block |
||
| 109 | 109 | ); |
| 110 | 110 | |
| 111 | 111 | throw new LocatorException($e->getMessage(), $e->getCode(), $e); |
| 112 | - } finally { |
|
| 112 | + }finally{ |
|
| 113 | 113 | spl_autoload_unregister($loader); |
| 114 | 114 | } |
| 115 | 115 | } |
@@ -125,13 +125,13 @@ discard block |
||
| 125 | 125 | { |
| 126 | 126 | $traits = []; |
| 127 | 127 | |
| 128 | - do { |
|
| 128 | + do{ |
|
| 129 | 129 | $traits = \array_merge(\class_uses($class), $traits); |
| 130 | 130 | $class = \get_parent_class($class); |
| 131 | - } while ($class !== false); |
|
| 131 | + }while ($class !== false); |
|
| 132 | 132 | |
| 133 | 133 | //Traits from traits |
| 134 | - foreach (\array_flip($traits) as $trait) { |
|
| 134 | + foreach (\array_flip($traits) as $trait){ |
|
| 135 | 135 | $traits = \array_merge(\class_uses($trait), $traits); |
| 136 | 136 | } |
| 137 | 137 | |
@@ -48,10 +48,12 @@ discard block |
||
| 48 | 48 | */ |
| 49 | 49 | protected function availableReflections(): Generator |
| 50 | 50 | { |
| 51 | - foreach ($this->finder->getIterator() as $file) { |
|
| 51 | + foreach ($this->finder->getIterator() as $file) |
|
| 52 | + { |
|
| 52 | 53 | $reflection = new ReflectionFile((string)$file); |
| 53 | 54 | |
| 54 | - if ($reflection->hasIncludes()) { |
|
| 55 | + if ($reflection->hasIncludes()) |
|
| 56 | + { |
|
| 55 | 57 | // We are not analyzing files which has includes, it's not safe to require such reflections |
| 56 | 58 | $this->getLogger()->warning( |
| 57 | 59 | sprintf('File `%s` has includes and excluded from analysis', $file), |
@@ -77,8 +79,10 @@ discard block |
||
| 77 | 79 | */ |
| 78 | 80 | protected function classReflection(string $class): ReflectionClass |
| 79 | 81 | { |
| 80 | - $loader = static function ($class) { |
|
| 81 | - if ($class === LocatorException::class) { |
|
| 82 | + $loader = static function ($class) |
|
| 83 | + { |
|
| 84 | + if ($class === LocatorException::class) |
|
| 85 | + { |
|
| 82 | 86 | return; |
| 83 | 87 | } |
| 84 | 88 | |
@@ -88,12 +92,16 @@ discard block |
||
| 88 | 92 | //To suspend class dependency exception |
| 89 | 93 | spl_autoload_register($loader); |
| 90 | 94 | |
| 91 | - try { |
|
| 95 | + try |
|
| 96 | + { |
|
| 92 | 97 | //In some cases reflection can thrown an exception if class invalid or can not be loaded, |
| 93 | 98 | //we are going to handle such exception and convert it soft exception |
| 94 | 99 | return new ReflectionClass($class); |
| 95 | - } catch (Throwable $e) { |
|
| 96 | - if ($e instanceof LocatorException && $e->getPrevious() != null) { |
|
| 100 | + } |
|
| 101 | + catch (Throwable $e) |
|
| 102 | + { |
|
| 103 | + if ($e instanceof LocatorException && $e->getPrevious() != null) |
|
| 104 | + { |
|
| 97 | 105 | $e = $e->getPrevious(); |
| 98 | 106 | } |
| 99 | 107 | |
@@ -109,7 +117,9 @@ discard block |
||
| 109 | 117 | ); |
| 110 | 118 | |
| 111 | 119 | throw new LocatorException($e->getMessage(), $e->getCode(), $e); |
| 112 | - } finally { |
|
| 120 | + } |
|
| 121 | + finally |
|
| 122 | + { |
|
| 113 | 123 | spl_autoload_unregister($loader); |
| 114 | 124 | } |
| 115 | 125 | } |
@@ -125,13 +135,15 @@ discard block |
||
| 125 | 135 | { |
| 126 | 136 | $traits = []; |
| 127 | 137 | |
| 128 | - do { |
|
| 138 | + do |
|
| 139 | + { |
|
| 129 | 140 | $traits = \array_merge(\class_uses($class), $traits); |
| 130 | 141 | $class = \get_parent_class($class); |
| 131 | 142 | } while ($class !== false); |
| 132 | 143 | |
| 133 | 144 | //Traits from traits |
| 134 | - foreach (\array_flip($traits) as $trait) { |
|
| 145 | + foreach (\array_flip($traits) as $trait) |
|
| 146 | + { |
|
| 135 | 147 | $traits = \array_merge(\class_uses($trait), $traits); |
| 136 | 148 | } |
| 137 | 149 | |
@@ -32,8 +32,8 @@ discard block |
||
| 32 | 32 | public function getInvocations(ReflectionFunctionAbstract $function): array |
| 33 | 33 | { |
| 34 | 34 | $result = []; |
| 35 | - foreach ($this->availableInvocations($function->getName()) as $invocation) { |
|
| 36 | - if ($this->isTargeted($invocation, $function)) { |
|
| 35 | + foreach ($this->availableInvocations($function->getName()) as $invocation){ |
|
| 36 | + if ($this->isTargeted($invocation, $function)){ |
|
| 37 | 37 | $result[] = $invocation; |
| 38 | 38 | } |
| 39 | 39 | } |
@@ -50,12 +50,12 @@ discard block |
||
| 50 | 50 | protected function availableInvocations(string $signature = ''): Generator |
| 51 | 51 | { |
| 52 | 52 | $signature = strtolower(trim($signature, '\\')); |
| 53 | - foreach ($this->availableReflections() as $reflection) { |
|
| 54 | - foreach ($reflection->getInvocations() as $invocation) { |
|
| 53 | + foreach ($this->availableReflections() as $reflection){ |
|
| 54 | + foreach ($reflection->getInvocations() as $invocation){ |
|
| 55 | 55 | if ( |
| 56 | 56 | !empty($signature) |
| 57 | 57 | && strtolower(trim($invocation->getName(), '\\')) != $signature |
| 58 | - ) { |
|
| 58 | + ){ |
|
| 59 | 59 | continue; |
| 60 | 60 | } |
| 61 | 61 | |
@@ -66,13 +66,13 @@ discard block |
||
| 66 | 66 | |
| 67 | 67 | protected function isTargeted(ReflectionInvocation $invocation, ReflectionFunctionAbstract $function): bool |
| 68 | 68 | { |
| 69 | - if ($function instanceof ReflectionFunction) { |
|
| 69 | + if ($function instanceof ReflectionFunction){ |
|
| 70 | 70 | return !$invocation->isMethod(); |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | - try { |
|
| 73 | + try{ |
|
| 74 | 74 | $reflection = $this->classReflection($invocation->getClass()); |
| 75 | - } catch (LocatorException $e) { |
|
| 75 | + }catch (LocatorException $e){ |
|
| 76 | 76 | return false; |
| 77 | 77 | } |
| 78 | 78 | |
@@ -81,7 +81,7 @@ discard block |
||
| 81 | 81 | */ |
| 82 | 82 | $target = $function->getDeclaringClass(); |
| 83 | 83 | |
| 84 | - if ($target->isTrait()) { |
|
| 84 | + if ($target->isTrait()){ |
|
| 85 | 85 | //Let's compare traits |
| 86 | 86 | return in_array($target->getName(), $this->fetchTraits($invocation->getClass())); |
| 87 | 87 | } |
@@ -32,8 +32,10 @@ discard block |
||
| 32 | 32 | public function getInvocations(ReflectionFunctionAbstract $function): array |
| 33 | 33 | { |
| 34 | 34 | $result = []; |
| 35 | - foreach ($this->availableInvocations($function->getName()) as $invocation) { |
|
| 36 | - if ($this->isTargeted($invocation, $function)) { |
|
| 35 | + foreach ($this->availableInvocations($function->getName()) as $invocation) |
|
| 36 | + { |
|
| 37 | + if ($this->isTargeted($invocation, $function)) |
|
| 38 | + { |
|
| 37 | 39 | $result[] = $invocation; |
| 38 | 40 | } |
| 39 | 41 | } |
@@ -50,8 +52,10 @@ discard block |
||
| 50 | 52 | protected function availableInvocations(string $signature = ''): Generator |
| 51 | 53 | { |
| 52 | 54 | $signature = strtolower(trim($signature, '\\')); |
| 53 | - foreach ($this->availableReflections() as $reflection) { |
|
| 54 | - foreach ($reflection->getInvocations() as $invocation) { |
|
| 55 | + foreach ($this->availableReflections() as $reflection) |
|
| 56 | + { |
|
| 57 | + foreach ($reflection->getInvocations() as $invocation) |
|
| 58 | + { |
|
| 55 | 59 | if ( |
| 56 | 60 | !empty($signature) |
| 57 | 61 | && strtolower(trim($invocation->getName(), '\\')) != $signature |
@@ -66,13 +70,17 @@ discard block |
||
| 66 | 70 | |
| 67 | 71 | protected function isTargeted(ReflectionInvocation $invocation, ReflectionFunctionAbstract $function): bool |
| 68 | 72 | { |
| 69 | - if ($function instanceof ReflectionFunction) { |
|
| 73 | + if ($function instanceof ReflectionFunction) |
|
| 74 | + { |
|
| 70 | 75 | return !$invocation->isMethod(); |
| 71 | 76 | } |
| 72 | 77 | |
| 73 | - try { |
|
| 78 | + try |
|
| 79 | + { |
|
| 74 | 80 | $reflection = $this->classReflection($invocation->getClass()); |
| 75 | - } catch (LocatorException $e) { |
|
| 81 | + } |
|
| 82 | + catch (LocatorException $e) |
|
| 83 | + { |
|
| 76 | 84 | return false; |
| 77 | 85 | } |
| 78 | 86 | |
@@ -81,7 +89,8 @@ discard block |
||
| 81 | 89 | */ |
| 82 | 90 | $target = $function->getDeclaringClass(); |
| 83 | 91 | |
| 84 | - if ($target->isTrait()) { |
|
| 92 | + if ($target->isTrait()) |
|
| 93 | + { |
|
| 85 | 94 | //Let's compare traits |
| 86 | 95 | return in_array($target->getName(), $this->fetchTraits($invocation->getClass())); |
| 87 | 96 | } |
@@ -24,20 +24,20 @@ discard block |
||
| 24 | 24 | */ |
| 25 | 25 | public function getClasses($target = null): array |
| 26 | 26 | { |
| 27 | - if (!empty($target) && (is_object($target) || is_string($target))) { |
|
| 27 | + if (!empty($target) && (is_object($target) || is_string($target))){ |
|
| 28 | 28 | $target = new ReflectionClass($target); |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | 31 | $result = []; |
| 32 | - foreach ($this->availableClasses() as $class) { |
|
| 33 | - try { |
|
| 32 | + foreach ($this->availableClasses() as $class){ |
|
| 33 | + try{ |
|
| 34 | 34 | $reflection = $this->classReflection($class); |
| 35 | - } catch (LocatorException $e) { |
|
| 35 | + }catch (LocatorException $e){ |
|
| 36 | 36 | //Ignoring |
| 37 | 37 | continue; |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | - if (!$this->isTargeted($reflection, $target) || $reflection->isInterface()) { |
|
| 40 | + if (!$this->isTargeted($reflection, $target) || $reflection->isInterface()){ |
|
| 41 | 41 | continue; |
| 42 | 42 | } |
| 43 | 43 | |
@@ -54,7 +54,7 @@ discard block |
||
| 54 | 54 | { |
| 55 | 55 | $classes = []; |
| 56 | 56 | |
| 57 | - foreach ($this->availableReflections() as $reflection) { |
|
| 57 | + foreach ($this->availableReflections() as $reflection){ |
|
| 58 | 58 | $classes = array_merge($classes, $reflection->getClasses()); |
| 59 | 59 | } |
| 60 | 60 | |
@@ -68,11 +68,11 @@ discard block |
||
| 68 | 68 | */ |
| 69 | 69 | protected function isTargeted(ReflectionClass $class, ReflectionClass $target = null): bool |
| 70 | 70 | { |
| 71 | - if (empty($target)) { |
|
| 71 | + if (empty($target)){ |
|
| 72 | 72 | return true; |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | - if (!$target->isTrait()) { |
|
| 75 | + if (!$target->isTrait()){ |
|
| 76 | 76 | //Target is interface or class |
| 77 | 77 | return $class->isSubclassOf($target) || $class->getName() == $target->getName(); |
| 78 | 78 | } |
@@ -24,20 +24,26 @@ discard block |
||
| 24 | 24 | */ |
| 25 | 25 | public function getClasses($target = null): array |
| 26 | 26 | { |
| 27 | - if (!empty($target) && (is_object($target) || is_string($target))) { |
|
| 27 | + if (!empty($target) && (is_object($target) || is_string($target))) |
|
| 28 | + { |
|
| 28 | 29 | $target = new ReflectionClass($target); |
| 29 | 30 | } |
| 30 | 31 | |
| 31 | 32 | $result = []; |
| 32 | - foreach ($this->availableClasses() as $class) { |
|
| 33 | - try { |
|
| 33 | + foreach ($this->availableClasses() as $class) |
|
| 34 | + { |
|
| 35 | + try |
|
| 36 | + { |
|
| 34 | 37 | $reflection = $this->classReflection($class); |
| 35 | - } catch (LocatorException $e) { |
|
| 38 | + } |
|
| 39 | + catch (LocatorException $e) |
|
| 40 | + { |
|
| 36 | 41 | //Ignoring |
| 37 | 42 | continue; |
| 38 | 43 | } |
| 39 | 44 | |
| 40 | - if (!$this->isTargeted($reflection, $target) || $reflection->isInterface()) { |
|
| 45 | + if (!$this->isTargeted($reflection, $target) || $reflection->isInterface()) |
|
| 46 | + { |
|
| 41 | 47 | continue; |
| 42 | 48 | } |
| 43 | 49 | |
@@ -54,7 +60,8 @@ discard block |
||
| 54 | 60 | { |
| 55 | 61 | $classes = []; |
| 56 | 62 | |
| 57 | - foreach ($this->availableReflections() as $reflection) { |
|
| 63 | + foreach ($this->availableReflections() as $reflection) |
|
| 64 | + { |
|
| 58 | 65 | $classes = array_merge($classes, $reflection->getClasses()); |
| 59 | 66 | } |
| 60 | 67 | |
@@ -68,11 +75,13 @@ discard block |
||
| 68 | 75 | */ |
| 69 | 76 | protected function isTargeted(ReflectionClass $class, ReflectionClass $target = null): bool |
| 70 | 77 | { |
| 71 | - if (empty($target)) { |
|
| 78 | + if (empty($target)) |
|
| 79 | + { |
|
| 72 | 80 | return true; |
| 73 | 81 | } |
| 74 | 82 | |
| 75 | - if (!$target->isTrait()) { |
|
| 83 | + if (!$target->isTrait()) |
|
| 84 | + { |
|
| 76 | 85 | //Target is interface or class |
| 77 | 86 | return $class->isSubclassOf($target) || $class->getName() == $target->getName(); |
| 78 | 87 | } |
@@ -21,8 +21,8 @@ discard block |
||
| 21 | 21 | /** |
| 22 | 22 | * Argument types. |
| 23 | 23 | */ |
| 24 | - public const CONSTANT = 'constant'; //Scalar constant and not variable. |
|
| 25 | - public const VARIABLE = 'variable'; //PHP variable |
|
| 24 | + public const CONSTANT = 'constant'; //Scalar constant and not variable. |
|
| 25 | + public const VARIABLE = 'variable'; //PHP variable |
|
| 26 | 26 | public const EXPRESSION = 'expression'; //PHP code (expression). |
| 27 | 27 | public const STRING = 'string'; |
| 28 | 28 | private string $type; |
@@ -59,7 +59,7 @@ discard block |
||
| 59 | 59 | */ |
| 60 | 60 | public function stringValue(): string |
| 61 | 61 | { |
| 62 | - if ($this->type != self::STRING) { |
|
| 62 | + if ($this->type != self::STRING){ |
|
| 63 | 63 | throw new ReflectionException( |
| 64 | 64 | "Unable to represent value as string, value type is '{$this->type}'" |
| 65 | 65 | ); |
@@ -80,19 +80,19 @@ discard block |
||
| 80 | 80 | $level = 0; |
| 81 | 81 | |
| 82 | 82 | $result = []; |
| 83 | - foreach ($tokens as $token) { |
|
| 84 | - if ($token[ReflectionFile::TOKEN_TYPE] == T_WHITESPACE) { |
|
| 83 | + foreach ($tokens as $token){ |
|
| 84 | + if ($token[ReflectionFile::TOKEN_TYPE] == T_WHITESPACE){ |
|
| 85 | 85 | continue; |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | - if (empty($definition)) { |
|
| 88 | + if (empty($definition)){ |
|
| 89 | 89 | $definition = ['type' => self::EXPRESSION, 'value' => '', 'tokens' => []]; |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | if ( |
| 93 | 93 | $token[ReflectionFile::TOKEN_TYPE] == '(' |
| 94 | 94 | || $token[ReflectionFile::TOKEN_TYPE] == '[' |
| 95 | - ) { |
|
| 95 | + ){ |
|
| 96 | 96 | ++$level; |
| 97 | 97 | $definition['value'] .= $token[ReflectionFile::TOKEN_CODE]; |
| 98 | 98 | continue; |
@@ -101,18 +101,18 @@ discard block |
||
| 101 | 101 | if ( |
| 102 | 102 | $token[ReflectionFile::TOKEN_TYPE] == ')' |
| 103 | 103 | || $token[ReflectionFile::TOKEN_TYPE] == ']' |
| 104 | - ) { |
|
| 104 | + ){ |
|
| 105 | 105 | --$level; |
| 106 | 106 | $definition['value'] .= $token[ReflectionFile::TOKEN_CODE]; |
| 107 | 107 | continue; |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | - if ($level) { |
|
| 110 | + if ($level){ |
|
| 111 | 111 | $definition['value'] .= $token[ReflectionFile::TOKEN_CODE]; |
| 112 | 112 | continue; |
| 113 | 113 | } |
| 114 | 114 | |
| 115 | - if ($token[ReflectionFile::TOKEN_TYPE] == ',') { |
|
| 115 | + if ($token[ReflectionFile::TOKEN_TYPE] == ','){ |
|
| 116 | 116 | $result[] = self::createArgument($definition); |
| 117 | 117 | $definition = null; |
| 118 | 118 | continue; |
@@ -123,9 +123,9 @@ discard block |
||
| 123 | 123 | } |
| 124 | 124 | |
| 125 | 125 | //Last argument |
| 126 | - if (is_array($definition)) { |
|
| 126 | + if (is_array($definition)){ |
|
| 127 | 127 | $definition = self::createArgument($definition); |
| 128 | - if (!empty($definition->getType())) { |
|
| 128 | + if (!empty($definition->getType())){ |
|
| 129 | 129 | $result[] = $definition; |
| 130 | 130 | } |
| 131 | 131 | } |
@@ -142,9 +142,9 @@ discard block |
||
| 142 | 142 | { |
| 143 | 143 | $result = new static(self::EXPRESSION, $definition['value']); |
| 144 | 144 | |
| 145 | - if (count($definition['tokens']) == 1) { |
|
| 145 | + if (count($definition['tokens']) == 1){ |
|
| 146 | 146 | //If argument represent by one token we can try to resolve it's type more precisely |
| 147 | - switch ($definition['tokens'][0][0]) { |
|
| 147 | + switch ($definition['tokens'][0][0]){ |
|
| 148 | 148 | case T_VARIABLE: |
| 149 | 149 | $result->type = self::VARIABLE; |
| 150 | 150 | break; |
@@ -77,9 +77,9 @@ discard block |
||
| 77 | 77 | */ |
| 78 | 78 | public function createInjection(ReflectionClass $class, string $context = null) |
| 79 | 79 | { |
| 80 | - if ($class->isSubclassOf(ClassesInterface::class)) { |
|
| 80 | + if ($class->isSubclassOf(ClassesInterface::class)){ |
|
| 81 | 81 | return $this->classLocator(); |
| 82 | - } elseif ($class->isSubclassOf(InvocationsInterface::class)) { |
|
| 82 | + } elseif ($class->isSubclassOf(InvocationsInterface::class)){ |
|
| 83 | 83 | return $this->invocationLocator(); |
| 84 | 84 | } |
| 85 | 85 | |
@@ -94,12 +94,12 @@ discard block |
||
| 94 | 94 | $tokens = token_get_all(file_get_contents($filename)); |
| 95 | 95 | |
| 96 | 96 | $line = 0; |
| 97 | - foreach ($tokens as &$token) { |
|
| 98 | - if (isset($token[self::LINE])) { |
|
| 97 | + foreach ($tokens as &$token){ |
|
| 98 | + if (isset($token[self::LINE])){ |
|
| 99 | 99 | $line = $token[self::LINE]; |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | - if (!is_array($token)) { |
|
| 102 | + if (!is_array($token)){ |
|
| 103 | 103 | $token = [$token, $token, $line]; |
| 104 | 104 | } |
| 105 | 105 | |
@@ -117,11 +117,11 @@ discard block |
||
| 117 | 117 | { |
| 118 | 118 | $finder = new Finder(); |
| 119 | 119 | |
| 120 | - if (empty($directories)) { |
|
| 120 | + if (empty($directories)){ |
|
| 121 | 121 | $directories = $this->config->getDirectories(); |
| 122 | 122 | } |
| 123 | 123 | |
| 124 | - if (empty($exclude)) { |
|
| 124 | + if (empty($exclude)){ |
|
| 125 | 125 | $exclude = $this->config->getExcludes(); |
| 126 | 126 | } |
| 127 | 127 | |
@@ -77,9 +77,12 @@ discard block |
||
| 77 | 77 | */ |
| 78 | 78 | public function createInjection(ReflectionClass $class, string $context = null) |
| 79 | 79 | { |
| 80 | - if ($class->isSubclassOf(ClassesInterface::class)) { |
|
| 80 | + if ($class->isSubclassOf(ClassesInterface::class)) |
|
| 81 | + { |
|
| 81 | 82 | return $this->classLocator(); |
| 82 | - } elseif ($class->isSubclassOf(InvocationsInterface::class)) { |
|
| 83 | + } |
|
| 84 | + elseif ($class->isSubclassOf(InvocationsInterface::class)) |
|
| 85 | + { |
|
| 83 | 86 | return $this->invocationLocator(); |
| 84 | 87 | } |
| 85 | 88 | |
@@ -94,12 +97,15 @@ discard block |
||
| 94 | 97 | $tokens = token_get_all(file_get_contents($filename)); |
| 95 | 98 | |
| 96 | 99 | $line = 0; |
| 97 | - foreach ($tokens as &$token) { |
|
| 98 | - if (isset($token[self::LINE])) { |
|
| 100 | + foreach ($tokens as &$token) |
|
| 101 | + { |
|
| 102 | + if (isset($token[self::LINE])) |
|
| 103 | + { |
|
| 99 | 104 | $line = $token[self::LINE]; |
| 100 | 105 | } |
| 101 | 106 | |
| 102 | - if (!is_array($token)) { |
|
| 107 | + if (!is_array($token)) |
|
| 108 | + { |
|
| 103 | 109 | $token = [$token, $token, $line]; |
| 104 | 110 | } |
| 105 | 111 | |
@@ -117,11 +123,13 @@ discard block |
||
| 117 | 123 | { |
| 118 | 124 | $finder = new Finder(); |
| 119 | 125 | |
| 120 | - if (empty($directories)) { |
|
| 126 | + if (empty($directories)) |
|
| 127 | + { |
|
| 121 | 128 | $directories = $this->config->getDirectories(); |
| 122 | 129 | } |
| 123 | 130 | |
| 124 | - if (empty($exclude)) { |
|
| 131 | + if (empty($exclude)) |
|
| 132 | + { |
|
| 125 | 133 | $exclude = $this->config->getExcludes(); |
| 126 | 134 | } |
| 127 | 135 | |
@@ -52,7 +52,7 @@ discard block |
||
| 52 | 52 | CoreInterface $core, |
| 53 | 53 | ScopeInterface $scope, |
| 54 | 54 | ResponseFactoryInterface $responseFactory |
| 55 | - ) { |
|
| 55 | + ){ |
|
| 56 | 56 | $this->core = $core; |
| 57 | 57 | $this->scope = $scope; |
| 58 | 58 | $this->responseFactory = $responseFactory; |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | */ |
| 91 | 91 | public function handle(Request $request): Response |
| 92 | 92 | { |
| 93 | - if ($this->controller === null) { |
|
| 93 | + if ($this->controller === null){ |
|
| 94 | 94 | throw new HandlerException('Controller and action pair is not set'); |
| 95 | 95 | } |
| 96 | 96 | |
@@ -100,7 +100,7 @@ discard block |
||
| 100 | 100 | $output = $result = null; |
| 101 | 101 | |
| 102 | 102 | $response = $this->responseFactory->createResponse(200); |
| 103 | - try { |
|
| 103 | + try{ |
|
| 104 | 104 | // run the core withing PSR-7 Request/Response scope |
| 105 | 105 | $result = $this->scope->runScope( |
| 106 | 106 | [ |
@@ -113,29 +113,29 @@ discard block |
||
| 113 | 113 | $this->parameters |
| 114 | 114 | ) |
| 115 | 115 | ); |
| 116 | - } catch (ControllerException $e) { |
|
| 116 | + }catch (ControllerException $e){ |
|
| 117 | 117 | ob_get_clean(); |
| 118 | 118 | throw $this->mapException($e); |
| 119 | - } catch (Throwable $e) { |
|
| 119 | + }catch (Throwable $e){ |
|
| 120 | 120 | ob_get_clean(); |
| 121 | 121 | throw $e; |
| 122 | - } finally { |
|
| 123 | - while (ob_get_level() > $outputLevel + 1) { |
|
| 124 | - $output = ob_get_clean() . $output; |
|
| 122 | + }finally{ |
|
| 123 | + while (ob_get_level() > $outputLevel + 1){ |
|
| 124 | + $output = ob_get_clean().$output; |
|
| 125 | 125 | } |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | 128 | return $this->wrapResponse( |
| 129 | 129 | $response, |
| 130 | 130 | $result, |
| 131 | - ob_get_clean() . $output |
|
| 131 | + ob_get_clean().$output |
|
| 132 | 132 | ); |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | private function getAction(Request $request): string |
| 136 | 136 | { |
| 137 | - if ($this->verbActions) { |
|
| 138 | - return strtolower($request->getMethod()) . ucfirst($this->action); |
|
| 137 | + if ($this->verbActions){ |
|
| 138 | + return strtolower($request->getMethod()).ucfirst($this->action); |
|
| 139 | 139 | } |
| 140 | 140 | |
| 141 | 141 | return $this->action; |
@@ -150,21 +150,21 @@ discard block |
||
| 150 | 150 | */ |
| 151 | 151 | private function wrapResponse(Response $response, $result = null, string $output = ''): Response |
| 152 | 152 | { |
| 153 | - if ($result instanceof Response) { |
|
| 154 | - if ($output !== '' && $result->getBody()->isWritable()) { |
|
| 153 | + if ($result instanceof Response){ |
|
| 154 | + if ($output !== '' && $result->getBody()->isWritable()){ |
|
| 155 | 155 | $result->getBody()->write($output); |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | return $result; |
| 159 | 159 | } |
| 160 | 160 | |
| 161 | - if ($result instanceof Generator) { |
|
| 161 | + if ($result instanceof Generator){ |
|
| 162 | 162 | return $response->withBody(new GeneratorStream($result)); |
| 163 | 163 | } |
| 164 | 164 | |
| 165 | - if (\is_array($result) || $result instanceof JsonSerializable) { |
|
| 165 | + if (\is_array($result) || $result instanceof JsonSerializable){ |
|
| 166 | 166 | $response = $this->writeJson($response, $result); |
| 167 | - } else { |
|
| 167 | + }else{ |
|
| 168 | 168 | $response->getBody()->write((string)$result); |
| 169 | 169 | } |
| 170 | 170 | |
@@ -179,7 +179,7 @@ discard block |
||
| 179 | 179 | */ |
| 180 | 180 | private function mapException(ControllerException $exception): ClientException |
| 181 | 181 | { |
| 182 | - switch ($exception->getCode()) { |
|
| 182 | + switch ($exception->getCode()){ |
|
| 183 | 183 | case ControllerException::BAD_ACTION: |
| 184 | 184 | case ControllerException::NOT_FOUND: |
| 185 | 185 | return new NotFoundException($exception->getMessage()); |
@@ -90,7 +90,8 @@ discard block |
||
| 90 | 90 | */ |
| 91 | 91 | public function handle(Request $request): Response |
| 92 | 92 | { |
| 93 | - if ($this->controller === null) { |
|
| 93 | + if ($this->controller === null) |
|
| 94 | + { |
|
| 94 | 95 | throw new HandlerException('Controller and action pair is not set'); |
| 95 | 96 | } |
| 96 | 97 | |
@@ -100,7 +101,8 @@ discard block |
||
| 100 | 101 | $output = $result = null; |
| 101 | 102 | |
| 102 | 103 | $response = $this->responseFactory->createResponse(200); |
| 103 | - try { |
|
| 104 | + try |
|
| 105 | + { |
|
| 104 | 106 | // run the core withing PSR-7 Request/Response scope |
| 105 | 107 | $result = $this->scope->runScope( |
| 106 | 108 | [ |
@@ -113,14 +115,21 @@ discard block |
||
| 113 | 115 | $this->parameters |
| 114 | 116 | ) |
| 115 | 117 | ); |
| 116 | - } catch (ControllerException $e) { |
|
| 118 | + } |
|
| 119 | + catch (ControllerException $e) |
|
| 120 | + { |
|
| 117 | 121 | ob_get_clean(); |
| 118 | 122 | throw $this->mapException($e); |
| 119 | - } catch (Throwable $e) { |
|
| 123 | + } |
|
| 124 | + catch (Throwable $e) |
|
| 125 | + { |
|
| 120 | 126 | ob_get_clean(); |
| 121 | 127 | throw $e; |
| 122 | - } finally { |
|
| 123 | - while (ob_get_level() > $outputLevel + 1) { |
|
| 128 | + } |
|
| 129 | + finally |
|
| 130 | + { |
|
| 131 | + while (ob_get_level() > $outputLevel + 1) |
|
| 132 | + { |
|
| 124 | 133 | $output = ob_get_clean() . $output; |
| 125 | 134 | } |
| 126 | 135 | } |
@@ -134,7 +143,8 @@ discard block |
||
| 134 | 143 | |
| 135 | 144 | private function getAction(Request $request): string |
| 136 | 145 | { |
| 137 | - if ($this->verbActions) { |
|
| 146 | + if ($this->verbActions) |
|
| 147 | + { |
|
| 138 | 148 | return strtolower($request->getMethod()) . ucfirst($this->action); |
| 139 | 149 | } |
| 140 | 150 | |
@@ -150,21 +160,27 @@ discard block |
||
| 150 | 160 | */ |
| 151 | 161 | private function wrapResponse(Response $response, $result = null, string $output = ''): Response |
| 152 | 162 | { |
| 153 | - if ($result instanceof Response) { |
|
| 154 | - if ($output !== '' && $result->getBody()->isWritable()) { |
|
| 163 | + if ($result instanceof Response) |
|
| 164 | + { |
|
| 165 | + if ($output !== '' && $result->getBody()->isWritable()) |
|
| 166 | + { |
|
| 155 | 167 | $result->getBody()->write($output); |
| 156 | 168 | } |
| 157 | 169 | |
| 158 | 170 | return $result; |
| 159 | 171 | } |
| 160 | 172 | |
| 161 | - if ($result instanceof Generator) { |
|
| 173 | + if ($result instanceof Generator) |
|
| 174 | + { |
|
| 162 | 175 | return $response->withBody(new GeneratorStream($result)); |
| 163 | 176 | } |
| 164 | 177 | |
| 165 | - if (\is_array($result) || $result instanceof JsonSerializable) { |
|
| 178 | + if (\is_array($result) || $result instanceof JsonSerializable) |
|
| 179 | + { |
|
| 166 | 180 | $response = $this->writeJson($response, $result); |
| 167 | - } else { |
|
| 181 | + } |
|
| 182 | + else |
|
| 183 | + { |
|
| 168 | 184 | $response->getBody()->write((string)$result); |
| 169 | 185 | } |
| 170 | 186 | |
@@ -179,7 +195,8 @@ discard block |
||
| 179 | 195 | */ |
| 180 | 196 | private function mapException(ControllerException $exception): ClientException |
| 181 | 197 | { |
| 182 | - switch ($exception->getCode()) { |
|
| 198 | + switch ($exception->getCode()) |
|
| 199 | + { |
|
| 183 | 200 | case ControllerException::BAD_ACTION: |
| 184 | 201 | case ControllerException::NOT_FOUND: |
| 185 | 202 | return new NotFoundException($exception->getMessage()); |
@@ -34,7 +34,7 @@ discard block |
||
| 34 | 34 | 'integer' => '\d+', |
| 35 | 35 | 'uuid' => '[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}', |
| 36 | 36 | ]; |
| 37 | - private const URI_FIXERS = [ |
|
| 37 | + private const URI_FIXERS = [ |
|
| 38 | 38 | '[]' => '', |
| 39 | 39 | '[/]' => '', |
| 40 | 40 | '[' => '', |
@@ -70,7 +70,7 @@ discard block |
||
| 70 | 70 | public function __construct( |
| 71 | 71 | UriFactoryInterface $uriFactory, |
| 72 | 72 | SlugifyInterface $slugify = null |
| 73 | - ) { |
|
| 73 | + ){ |
|
| 74 | 74 | $this->uriFactory = $uriFactory; |
| 75 | 75 | $this->slugify = $slugify ?? new Slugify(); |
| 76 | 76 | } |
@@ -133,12 +133,12 @@ discard block |
||
| 133 | 133 | */ |
| 134 | 134 | public function match(UriInterface $uri, array $defaults): ?array |
| 135 | 135 | { |
| 136 | - if (!$this->isCompiled()) { |
|
| 136 | + if (!$this->isCompiled()){ |
|
| 137 | 137 | $this->compile(); |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | 140 | $matches = []; |
| 141 | - if (!preg_match($this->compiled, $this->fetchTarget($uri), $matches)) { |
|
| 141 | + if (!preg_match($this->compiled, $this->fetchTarget($uri), $matches)){ |
|
| 142 | 142 | return null; |
| 143 | 143 | } |
| 144 | 144 | |
@@ -154,7 +154,7 @@ discard block |
||
| 154 | 154 | */ |
| 155 | 155 | public function uri($parameters = [], array $defaults = []): UriInterface |
| 156 | 156 | { |
| 157 | - if (!$this->isCompiled()) { |
|
| 157 | + if (!$this->isCompiled()){ |
|
| 158 | 158 | $this->compile(); |
| 159 | 159 | } |
| 160 | 160 | |
@@ -164,8 +164,8 @@ discard block |
||
| 164 | 164 | $this->fetchOptions($parameters, $query) |
| 165 | 165 | ); |
| 166 | 166 | |
| 167 | - foreach ($this->constrains as $key => $_) { |
|
| 168 | - if (empty($parameters[$key])) { |
|
| 167 | + foreach ($this->constrains as $key => $_){ |
|
| 168 | + if (empty($parameters[$key])){ |
|
| 169 | 169 | throw new UriHandlerException("Unable to generate Uri, parameter `{$key}` is missing"); |
| 170 | 170 | } |
| 171 | 171 | } |
@@ -174,7 +174,7 @@ discard block |
||
| 174 | 174 | $path = $this->interpolate($this->template, $parameters); |
| 175 | 175 | |
| 176 | 176 | //Uri with added prefix |
| 177 | - $uri = $this->uriFactory->createUri(($this->matchHost ? '' : $this->prefix) . trim($path, '/')); |
|
| 177 | + $uri = $this->uriFactory->createUri(($this->matchHost ? '' : $this->prefix).trim($path, '/')); |
|
| 178 | 178 | |
| 179 | 179 | return empty($query) ? $uri : $uri->withQuery(http_build_query($query)); |
| 180 | 180 | } |
@@ -190,18 +190,18 @@ discard block |
||
| 190 | 190 | $allowed = array_keys($this->options); |
| 191 | 191 | |
| 192 | 192 | $result = []; |
| 193 | - foreach ($parameters as $key => $parameter) { |
|
| 194 | - if (is_numeric($key) && isset($allowed[$key])) { |
|
| 193 | + foreach ($parameters as $key => $parameter){ |
|
| 194 | + if (is_numeric($key) && isset($allowed[$key])){ |
|
| 195 | 195 | // this segment fetched keys from given parameters either by name or by position |
| 196 | 196 | $key = $allowed[$key]; |
| 197 | - } elseif (!array_key_exists($key, $this->options) && is_array($parameters)) { |
|
| 197 | + } elseif (!array_key_exists($key, $this->options) && is_array($parameters)){ |
|
| 198 | 198 | // all additional parameters given in array form can be glued to query string |
| 199 | 199 | $query[$key] = $parameter; |
| 200 | 200 | continue; |
| 201 | 201 | } |
| 202 | 202 | |
| 203 | 203 | //String must be normalized here |
| 204 | - if (is_string($parameter) && !preg_match('/^[a-z\-_0-9]+$/i', $parameter)) { |
|
| 204 | + if (is_string($parameter) && !preg_match('/^[a-z\-_0-9]+$/i', $parameter)){ |
|
| 205 | 205 | $result[$key] = $this->slugify->slugify($parameter); |
| 206 | 206 | continue; |
| 207 | 207 | } |
@@ -219,15 +219,15 @@ discard block |
||
| 219 | 219 | { |
| 220 | 220 | $path = $uri->getPath(); |
| 221 | 221 | |
| 222 | - if (empty($path) || $path[0] !== '/') { |
|
| 223 | - $path = '/' . $path; |
|
| 222 | + if (empty($path) || $path[0] !== '/'){ |
|
| 223 | + $path = '/'.$path; |
|
| 224 | 224 | } |
| 225 | 225 | |
| 226 | - if ($this->matchHost) { |
|
| 227 | - $uriString = $uri->getHost() . $path; |
|
| 228 | - } else { |
|
| 226 | + if ($this->matchHost){ |
|
| 227 | + $uriString = $uri->getHost().$path; |
|
| 228 | + }else{ |
|
| 229 | 229 | $uriString = substr($path, strlen($this->prefix)); |
| 230 | - if ($uriString === false) { |
|
| 230 | + if ($uriString === false){ |
|
| 231 | 231 | $uriString = ''; |
| 232 | 232 | } |
| 233 | 233 | } |
@@ -240,7 +240,7 @@ discard block |
||
| 240 | 240 | */ |
| 241 | 241 | private function compile(): void |
| 242 | 242 | { |
| 243 | - if ($this->pattern === null) { |
|
| 243 | + if ($this->pattern === null){ |
|
| 244 | 244 | throw new UriHandlerException('Unable to compile UriHandler, pattern is not set'); |
| 245 | 245 | } |
| 246 | 246 | |
@@ -248,14 +248,14 @@ discard block |
||
| 248 | 248 | $pattern = rtrim(ltrim($this->pattern, ':/'), '/'); |
| 249 | 249 | |
| 250 | 250 | // correct [/ first occurrence] |
| 251 | - if (strpos($pattern, '[/') === 0) { |
|
| 252 | - $pattern = '[' . substr($pattern, 2); |
|
| 251 | + if (strpos($pattern, '[/') === 0){ |
|
| 252 | + $pattern = '['.substr($pattern, 2); |
|
| 253 | 253 | } |
| 254 | 254 | |
| 255 | - if (preg_match_all('/<(\w+):?(.*?)?>/', $pattern, $matches)) { |
|
| 255 | + if (preg_match_all('/<(\w+):?(.*?)?>/', $pattern, $matches)){ |
|
| 256 | 256 | $variables = array_combine($matches[1], $matches[2]); |
| 257 | 257 | |
| 258 | - foreach ($variables as $key => $segment) { |
|
| 258 | + foreach ($variables as $key => $segment){ |
|
| 259 | 259 | $segment = $this->prepareSegment($key, $segment); |
| 260 | 260 | $replaces["<$key>"] = "(?P<$key>$segment)"; |
| 261 | 261 | $options[] = $key; |
@@ -265,13 +265,13 @@ discard block |
||
| 265 | 265 | $template = preg_replace('/<(\w+):?.*?>/', '<\1>', $pattern); |
| 266 | 266 | $options = array_fill_keys($options, null); |
| 267 | 267 | |
| 268 | - foreach ($this->constrains as $key => $value) { |
|
| 269 | - if ($value instanceof Autofill) { |
|
| 268 | + foreach ($this->constrains as $key => $value){ |
|
| 269 | + if ($value instanceof Autofill){ |
|
| 270 | 270 | // only forces value replacement, not required to be presented as parameter |
| 271 | 271 | continue; |
| 272 | 272 | } |
| 273 | 273 | |
| 274 | - if (!array_key_exists($key, $options) && !isset($this->defaults[$key])) { |
|
| 274 | + if (!array_key_exists($key, $options) && !isset($this->defaults[$key])){ |
|
| 275 | 275 | throw new ConstrainException( |
| 276 | 276 | sprintf( |
| 277 | 277 | 'Route `%s` does not define routing parameter `<%s>`.', |
@@ -282,7 +282,7 @@ discard block |
||
| 282 | 282 | } |
| 283 | 283 | } |
| 284 | 284 | |
| 285 | - $this->compiled = '/^' . strtr($template, $replaces + self::PATTERN_REPLACES) . '$/iu'; |
|
| 285 | + $this->compiled = '/^'.strtr($template, $replaces + self::PATTERN_REPLACES).'$/iu'; |
|
| 286 | 286 | $this->template = stripslashes(str_replace('?', '', $template)); |
| 287 | 287 | $this->options = $options; |
| 288 | 288 | } |
@@ -293,7 +293,7 @@ discard block |
||
| 293 | 293 | private function interpolate(string $string, array $values): string |
| 294 | 294 | { |
| 295 | 295 | $replaces = []; |
| 296 | - foreach ($values as $key => $value) { |
|
| 296 | + foreach ($values as $key => $value){ |
|
| 297 | 297 | $value = (is_array($value) || $value instanceof Closure) ? '' : $value; |
| 298 | 298 | $replaces["<{$key}>"] = is_object($value) ? (string)$value : $value; |
| 299 | 299 | } |
@@ -306,15 +306,15 @@ discard block |
||
| 306 | 306 | */ |
| 307 | 307 | private function prepareSegment(string $name, string $segment): string |
| 308 | 308 | { |
| 309 | - if ($segment !== '') { |
|
| 309 | + if ($segment !== ''){ |
|
| 310 | 310 | return self::SEGMENT_TYPES[$segment] ?? $segment; |
| 311 | 311 | } |
| 312 | 312 | |
| 313 | - if (!isset($this->constrains[$name])) { |
|
| 313 | + if (!isset($this->constrains[$name])){ |
|
| 314 | 314 | return self::DEFAULT_SEGMENT; |
| 315 | 315 | } |
| 316 | 316 | |
| 317 | - if (is_array($this->constrains[$name])) { |
|
| 317 | + if (is_array($this->constrains[$name])){ |
|
| 318 | 318 | $values = array_map([$this, 'filterSegment'], $this->constrains[$name]); |
| 319 | 319 | |
| 320 | 320 | return implode('|', $values); |
@@ -133,12 +133,14 @@ discard block |
||
| 133 | 133 | */ |
| 134 | 134 | public function match(UriInterface $uri, array $defaults): ?array |
| 135 | 135 | { |
| 136 | - if (!$this->isCompiled()) { |
|
| 136 | + if (!$this->isCompiled()) |
|
| 137 | + { |
|
| 137 | 138 | $this->compile(); |
| 138 | 139 | } |
| 139 | 140 | |
| 140 | 141 | $matches = []; |
| 141 | - if (!preg_match($this->compiled, $this->fetchTarget($uri), $matches)) { |
|
| 142 | + if (!preg_match($this->compiled, $this->fetchTarget($uri), $matches)) |
|
| 143 | + { |
|
| 142 | 144 | return null; |
| 143 | 145 | } |
| 144 | 146 | |
@@ -154,7 +156,8 @@ discard block |
||
| 154 | 156 | */ |
| 155 | 157 | public function uri($parameters = [], array $defaults = []): UriInterface |
| 156 | 158 | { |
| 157 | - if (!$this->isCompiled()) { |
|
| 159 | + if (!$this->isCompiled()) |
|
| 160 | + { |
|
| 158 | 161 | $this->compile(); |
| 159 | 162 | } |
| 160 | 163 | |
@@ -164,8 +167,10 @@ discard block |
||
| 164 | 167 | $this->fetchOptions($parameters, $query) |
| 165 | 168 | ); |
| 166 | 169 | |
| 167 | - foreach ($this->constrains as $key => $_) { |
|
| 168 | - if (empty($parameters[$key])) { |
|
| 170 | + foreach ($this->constrains as $key => $_) |
|
| 171 | + { |
|
| 172 | + if (empty($parameters[$key])) |
|
| 173 | + { |
|
| 169 | 174 | throw new UriHandlerException("Unable to generate Uri, parameter `{$key}` is missing"); |
| 170 | 175 | } |
| 171 | 176 | } |
@@ -190,18 +195,23 @@ discard block |
||
| 190 | 195 | $allowed = array_keys($this->options); |
| 191 | 196 | |
| 192 | 197 | $result = []; |
| 193 | - foreach ($parameters as $key => $parameter) { |
|
| 194 | - if (is_numeric($key) && isset($allowed[$key])) { |
|
| 198 | + foreach ($parameters as $key => $parameter) |
|
| 199 | + { |
|
| 200 | + if (is_numeric($key) && isset($allowed[$key])) |
|
| 201 | + { |
|
| 195 | 202 | // this segment fetched keys from given parameters either by name or by position |
| 196 | 203 | $key = $allowed[$key]; |
| 197 | - } elseif (!array_key_exists($key, $this->options) && is_array($parameters)) { |
|
| 204 | + } |
|
| 205 | + elseif (!array_key_exists($key, $this->options) && is_array($parameters)) |
|
| 206 | + { |
|
| 198 | 207 | // all additional parameters given in array form can be glued to query string |
| 199 | 208 | $query[$key] = $parameter; |
| 200 | 209 | continue; |
| 201 | 210 | } |
| 202 | 211 | |
| 203 | 212 | //String must be normalized here |
| 204 | - if (is_string($parameter) && !preg_match('/^[a-z\-_0-9]+$/i', $parameter)) { |
|
| 213 | + if (is_string($parameter) && !preg_match('/^[a-z\-_0-9]+$/i', $parameter)) |
|
| 214 | + { |
|
| 205 | 215 | $result[$key] = $this->slugify->slugify($parameter); |
| 206 | 216 | continue; |
| 207 | 217 | } |
@@ -219,15 +229,20 @@ discard block |
||
| 219 | 229 | { |
| 220 | 230 | $path = $uri->getPath(); |
| 221 | 231 | |
| 222 | - if (empty($path) || $path[0] !== '/') { |
|
| 232 | + if (empty($path) || $path[0] !== '/') |
|
| 233 | + { |
|
| 223 | 234 | $path = '/' . $path; |
| 224 | 235 | } |
| 225 | 236 | |
| 226 | - if ($this->matchHost) { |
|
| 237 | + if ($this->matchHost) |
|
| 238 | + { |
|
| 227 | 239 | $uriString = $uri->getHost() . $path; |
| 228 | - } else { |
|
| 240 | + } |
|
| 241 | + else |
|
| 242 | + { |
|
| 229 | 243 | $uriString = substr($path, strlen($this->prefix)); |
| 230 | - if ($uriString === false) { |
|
| 244 | + if ($uriString === false) |
|
| 245 | + { |
|
| 231 | 246 | $uriString = ''; |
| 232 | 247 | } |
| 233 | 248 | } |
@@ -240,7 +255,8 @@ discard block |
||
| 240 | 255 | */ |
| 241 | 256 | private function compile(): void |
| 242 | 257 | { |
| 243 | - if ($this->pattern === null) { |
|
| 258 | + if ($this->pattern === null) |
|
| 259 | + { |
|
| 244 | 260 | throw new UriHandlerException('Unable to compile UriHandler, pattern is not set'); |
| 245 | 261 | } |
| 246 | 262 | |
@@ -248,14 +264,17 @@ discard block |
||
| 248 | 264 | $pattern = rtrim(ltrim($this->pattern, ':/'), '/'); |
| 249 | 265 | |
| 250 | 266 | // correct [/ first occurrence] |
| 251 | - if (strpos($pattern, '[/') === 0) { |
|
| 267 | + if (strpos($pattern, '[/') === 0) |
|
| 268 | + { |
|
| 252 | 269 | $pattern = '[' . substr($pattern, 2); |
| 253 | 270 | } |
| 254 | 271 | |
| 255 | - if (preg_match_all('/<(\w+):?(.*?)?>/', $pattern, $matches)) { |
|
| 272 | + if (preg_match_all('/<(\w+):?(.*?)?>/', $pattern, $matches)) |
|
| 273 | + { |
|
| 256 | 274 | $variables = array_combine($matches[1], $matches[2]); |
| 257 | 275 | |
| 258 | - foreach ($variables as $key => $segment) { |
|
| 276 | + foreach ($variables as $key => $segment) |
|
| 277 | + { |
|
| 259 | 278 | $segment = $this->prepareSegment($key, $segment); |
| 260 | 279 | $replaces["<$key>"] = "(?P<$key>$segment)"; |
| 261 | 280 | $options[] = $key; |
@@ -265,13 +284,16 @@ discard block |
||
| 265 | 284 | $template = preg_replace('/<(\w+):?.*?>/', '<\1>', $pattern); |
| 266 | 285 | $options = array_fill_keys($options, null); |
| 267 | 286 | |
| 268 | - foreach ($this->constrains as $key => $value) { |
|
| 269 | - if ($value instanceof Autofill) { |
|
| 287 | + foreach ($this->constrains as $key => $value) |
|
| 288 | + { |
|
| 289 | + if ($value instanceof Autofill) |
|
| 290 | + { |
|
| 270 | 291 | // only forces value replacement, not required to be presented as parameter |
| 271 | 292 | continue; |
| 272 | 293 | } |
| 273 | 294 | |
| 274 | - if (!array_key_exists($key, $options) && !isset($this->defaults[$key])) { |
|
| 295 | + if (!array_key_exists($key, $options) && !isset($this->defaults[$key])) |
|
| 296 | + { |
|
| 275 | 297 | throw new ConstrainException( |
| 276 | 298 | sprintf( |
| 277 | 299 | 'Route `%s` does not define routing parameter `<%s>`.', |
@@ -293,7 +315,8 @@ discard block |
||
| 293 | 315 | private function interpolate(string $string, array $values): string |
| 294 | 316 | { |
| 295 | 317 | $replaces = []; |
| 296 | - foreach ($values as $key => $value) { |
|
| 318 | + foreach ($values as $key => $value) |
|
| 319 | + { |
|
| 297 | 320 | $value = (is_array($value) || $value instanceof Closure) ? '' : $value; |
| 298 | 321 | $replaces["<{$key}>"] = is_object($value) ? (string)$value : $value; |
| 299 | 322 | } |
@@ -306,15 +329,18 @@ discard block |
||
| 306 | 329 | */ |
| 307 | 330 | private function prepareSegment(string $name, string $segment): string |
| 308 | 331 | { |
| 309 | - if ($segment !== '') { |
|
| 332 | + if ($segment !== '') |
|
| 333 | + { |
|
| 310 | 334 | return self::SEGMENT_TYPES[$segment] ?? $segment; |
| 311 | 335 | } |
| 312 | 336 | |
| 313 | - if (!isset($this->constrains[$name])) { |
|
| 337 | + if (!isset($this->constrains[$name])) |
|
| 338 | + { |
|
| 314 | 339 | return self::DEFAULT_SEGMENT; |
| 315 | 340 | } |
| 316 | 341 | |
| 317 | - if (is_array($this->constrains[$name])) { |
|
| 342 | + if (is_array($this->constrains[$name])) |
|
| 343 | + { |
|
| 318 | 344 | $values = array_map([$this, 'filterSegment'], $this->constrains[$name]); |
| 319 | 345 | |
| 320 | 346 | return implode('|', $values); |