@@ -86,7 +86,7 @@ discard block |
||
| 86 | 86 | |
| 87 | 87 | private function checkAvailability(): void |
| 88 | 88 | { |
| 89 | - if (!self::isAvailable()) { |
|
| 89 | + if (!self::isAvailable()){ |
|
| 90 | 90 | throw new InitializationException('Requires the PHP >= 8.0'); |
| 91 | 91 | } |
| 92 | 92 | } |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | */ |
| 99 | 99 | private function format(Reflector $context, iterable $attributes): iterable |
| 100 | 100 | { |
| 101 | - foreach ($attributes as $attribute) { |
|
| 101 | + foreach ($attributes as $attribute){ |
|
| 102 | 102 | $this->assertClassExists($attribute->getName(), $context); |
| 103 | 103 | |
| 104 | 104 | yield new ReflectionClass($attribute->getName()) => $attribute->getArguments(); |
@@ -86,7 +86,8 @@ discard block |
||
| 86 | 86 | |
| 87 | 87 | private function checkAvailability(): void |
| 88 | 88 | { |
| 89 | - if (!self::isAvailable()) { |
|
| 89 | + if (!self::isAvailable()) |
|
| 90 | + { |
|
| 90 | 91 | throw new InitializationException('Requires the PHP >= 8.0'); |
| 91 | 92 | } |
| 92 | 93 | } |
@@ -98,7 +99,8 @@ discard block |
||
| 98 | 99 | */ |
| 99 | 100 | private function format(Reflector $context, iterable $attributes): iterable |
| 100 | 101 | { |
| 101 | - foreach ($attributes as $attribute) { |
|
| 102 | + foreach ($attributes as $attribute) |
|
| 103 | + { |
|
| 102 | 104 | $this->assertClassExists($attribute->getName(), $context); |
| 103 | 105 | |
| 104 | 106 | yield new ReflectionClass($attribute->getName()) => $attribute->getArguments(); |
@@ -130,7 +130,7 @@ |
||
| 130 | 130 | */ |
| 131 | 131 | protected function iterableToArray(iterable $attributes): array |
| 132 | 132 | { |
| 133 | - if ($attributes instanceof Traversable) { |
|
| 133 | + if ($attributes instanceof Traversable){ |
|
| 134 | 134 | return \iterator_to_array($attributes, false); |
| 135 | 135 | } |
| 136 | 136 | |
@@ -130,7 +130,8 @@ |
||
| 130 | 130 | */ |
| 131 | 131 | protected function iterableToArray(iterable $attributes): array |
| 132 | 132 | { |
| 133 | - if ($attributes instanceof Traversable) { |
|
| 133 | + if ($attributes instanceof Traversable) |
|
| 134 | + { |
|
| 134 | 135 | return \iterator_to_array($attributes, false); |
| 135 | 136 | } |
| 136 | 137 | |
@@ -140,23 +140,23 @@ discard block |
||
| 140 | 140 | { |
| 141 | 141 | $this->updateContext($node); |
| 142 | 142 | |
| 143 | - if ($node instanceof ClassLike) { |
|
| 144 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 143 | + if ($node instanceof ClassLike){ |
|
| 144 | + foreach ($this->parse($node->attrGroups) as $prototype){ |
|
| 145 | 145 | $this->classes[$node->namespacedName->toString()][] = $prototype; |
| 146 | 146 | } |
| 147 | 147 | |
| 148 | 148 | return null; |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | - if ($node instanceof FunctionLike) { |
|
| 151 | + if ($node instanceof FunctionLike){ |
|
| 152 | 152 | $line = $node->getEndLine(); |
| 153 | 153 | |
| 154 | - foreach ($this->parse($node->getAttrGroups()) as $prototype) { |
|
| 154 | + foreach ($this->parse($node->getAttrGroups()) as $prototype){ |
|
| 155 | 155 | $this->functions[$line][] = $prototype; |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | - foreach ($node->getParams() as $param) { |
|
| 159 | - foreach ($this->parse($param->attrGroups) as $prototype) { |
|
| 158 | + foreach ($node->getParams() as $param){ |
|
| 159 | + foreach ($this->parse($param->attrGroups) as $prototype){ |
|
| 160 | 160 | assert(\is_string($param->var->name), 'Function parameter name should be an identifier'); |
| 161 | 161 | |
| 162 | 162 | $this->parameters[$line][$param->var->name][] = $prototype; |
@@ -166,11 +166,11 @@ discard block |
||
| 166 | 166 | return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; |
| 167 | 167 | } |
| 168 | 168 | |
| 169 | - if ($node instanceof ClassConst) { |
|
| 169 | + if ($node instanceof ClassConst){ |
|
| 170 | 170 | $class = $this->fqn(); |
| 171 | 171 | |
| 172 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 173 | - foreach ($node->consts as $const) { |
|
| 172 | + foreach ($this->parse($node->attrGroups) as $prototype){ |
|
| 173 | + foreach ($node->consts as $const){ |
|
| 174 | 174 | $this->constants[$class][$this->name($const->name)][] = $prototype; |
| 175 | 175 | } |
| 176 | 176 | } |
@@ -178,11 +178,11 @@ discard block |
||
| 178 | 178 | return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; |
| 179 | 179 | } |
| 180 | 180 | |
| 181 | - if ($node instanceof Property) { |
|
| 181 | + if ($node instanceof Property){ |
|
| 182 | 182 | $class = $this->fqn(); |
| 183 | 183 | |
| 184 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 185 | - foreach ($node->props as $property) { |
|
| 184 | + foreach ($this->parse($node->attrGroups) as $prototype){ |
|
| 185 | + foreach ($node->props as $property){ |
|
| 186 | 186 | $this->properties[$class][$this->name($property->name)][] = $prototype; |
| 187 | 187 | } |
| 188 | 188 | } |
@@ -195,27 +195,27 @@ discard block |
||
| 195 | 195 | |
| 196 | 196 | public function leaveNode(Node $node): void |
| 197 | 197 | { |
| 198 | - if ($node instanceof Namespace_) { |
|
| 198 | + if ($node instanceof Namespace_){ |
|
| 199 | 199 | $this->context[AttributeParser::CTX_NAMESPACE] = ''; |
| 200 | 200 | |
| 201 | 201 | return; |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | - if ($node instanceof ClassLike) { |
|
| 204 | + if ($node instanceof ClassLike){ |
|
| 205 | 205 | $this->context[AttributeParser::CTX_CLASS] = ''; |
| 206 | 206 | $this->context[AttributeParser::CTX_TRAIT] = ''; |
| 207 | 207 | |
| 208 | 208 | return; |
| 209 | 209 | } |
| 210 | 210 | |
| 211 | - if ($node instanceof FunctionLike) { |
|
| 211 | + if ($node instanceof FunctionLike){ |
|
| 212 | 212 | $this->context[AttributeParser::CTX_FUNCTION] = ''; |
| 213 | 213 | } |
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | private function updateContext(Node $node): void |
| 217 | 217 | { |
| 218 | - switch (true) { |
|
| 218 | + switch (true){ |
|
| 219 | 219 | case $node instanceof Namespace_: |
| 220 | 220 | $this->context[AttributeParser::CTX_NAMESPACE] = $this->name($node->name); |
| 221 | 221 | break; |
@@ -240,7 +240,7 @@ discard block |
||
| 240 | 240 | */ |
| 241 | 241 | private function name($name): string |
| 242 | 242 | { |
| 243 | - if ($name === null) { |
|
| 243 | + if ($name === null){ |
|
| 244 | 244 | return ''; |
| 245 | 245 | } |
| 246 | 246 | |
@@ -262,6 +262,6 @@ discard block |
||
| 262 | 262 | $namespace = $this->context[AttributeParser::CTX_NAMESPACE] ?? ''; |
| 263 | 263 | $class = $this->context[AttributeParser::CTX_CLASS] ?? ''; |
| 264 | 264 | |
| 265 | - return \trim($namespace . '\\' . $class, '\\'); |
|
| 265 | + return \trim($namespace.'\\'.$class, '\\'); |
|
| 266 | 266 | } |
| 267 | 267 | } |
@@ -140,23 +140,29 @@ discard block |
||
| 140 | 140 | { |
| 141 | 141 | $this->updateContext($node); |
| 142 | 142 | |
| 143 | - if ($node instanceof ClassLike) { |
|
| 144 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 143 | + if ($node instanceof ClassLike) |
|
| 144 | + { |
|
| 145 | + foreach ($this->parse($node->attrGroups) as $prototype) |
|
| 146 | + { |
|
| 145 | 147 | $this->classes[$node->namespacedName->toString()][] = $prototype; |
| 146 | 148 | } |
| 147 | 149 | |
| 148 | 150 | return null; |
| 149 | 151 | } |
| 150 | 152 | |
| 151 | - if ($node instanceof FunctionLike) { |
|
| 153 | + if ($node instanceof FunctionLike) |
|
| 154 | + { |
|
| 152 | 155 | $line = $node->getEndLine(); |
| 153 | 156 | |
| 154 | - foreach ($this->parse($node->getAttrGroups()) as $prototype) { |
|
| 157 | + foreach ($this->parse($node->getAttrGroups()) as $prototype) |
|
| 158 | + { |
|
| 155 | 159 | $this->functions[$line][] = $prototype; |
| 156 | 160 | } |
| 157 | 161 | |
| 158 | - foreach ($node->getParams() as $param) { |
|
| 159 | - foreach ($this->parse($param->attrGroups) as $prototype) { |
|
| 162 | + foreach ($node->getParams() as $param) |
|
| 163 | + { |
|
| 164 | + foreach ($this->parse($param->attrGroups) as $prototype) |
|
| 165 | + { |
|
| 160 | 166 | assert(\is_string($param->var->name), 'Function parameter name should be an identifier'); |
| 161 | 167 | |
| 162 | 168 | $this->parameters[$line][$param->var->name][] = $prototype; |
@@ -166,11 +172,14 @@ discard block |
||
| 166 | 172 | return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; |
| 167 | 173 | } |
| 168 | 174 | |
| 169 | - if ($node instanceof ClassConst) { |
|
| 175 | + if ($node instanceof ClassConst) |
|
| 176 | + { |
|
| 170 | 177 | $class = $this->fqn(); |
| 171 | 178 | |
| 172 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 173 | - foreach ($node->consts as $const) { |
|
| 179 | + foreach ($this->parse($node->attrGroups) as $prototype) |
|
| 180 | + { |
|
| 181 | + foreach ($node->consts as $const) |
|
| 182 | + { |
|
| 174 | 183 | $this->constants[$class][$this->name($const->name)][] = $prototype; |
| 175 | 184 | } |
| 176 | 185 | } |
@@ -178,11 +187,14 @@ discard block |
||
| 178 | 187 | return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; |
| 179 | 188 | } |
| 180 | 189 | |
| 181 | - if ($node instanceof Property) { |
|
| 190 | + if ($node instanceof Property) |
|
| 191 | + { |
|
| 182 | 192 | $class = $this->fqn(); |
| 183 | 193 | |
| 184 | - foreach ($this->parse($node->attrGroups) as $prototype) { |
|
| 185 | - foreach ($node->props as $property) { |
|
| 194 | + foreach ($this->parse($node->attrGroups) as $prototype) |
|
| 195 | + { |
|
| 196 | + foreach ($node->props as $property) |
|
| 197 | + { |
|
| 186 | 198 | $this->properties[$class][$this->name($property->name)][] = $prototype; |
| 187 | 199 | } |
| 188 | 200 | } |
@@ -195,27 +207,31 @@ discard block |
||
| 195 | 207 | |
| 196 | 208 | public function leaveNode(Node $node): void |
| 197 | 209 | { |
| 198 | - if ($node instanceof Namespace_) { |
|
| 210 | + if ($node instanceof Namespace_) |
|
| 211 | + { |
|
| 199 | 212 | $this->context[AttributeParser::CTX_NAMESPACE] = ''; |
| 200 | 213 | |
| 201 | 214 | return; |
| 202 | 215 | } |
| 203 | 216 | |
| 204 | - if ($node instanceof ClassLike) { |
|
| 217 | + if ($node instanceof ClassLike) |
|
| 218 | + { |
|
| 205 | 219 | $this->context[AttributeParser::CTX_CLASS] = ''; |
| 206 | 220 | $this->context[AttributeParser::CTX_TRAIT] = ''; |
| 207 | 221 | |
| 208 | 222 | return; |
| 209 | 223 | } |
| 210 | 224 | |
| 211 | - if ($node instanceof FunctionLike) { |
|
| 225 | + if ($node instanceof FunctionLike) |
|
| 226 | + { |
|
| 212 | 227 | $this->context[AttributeParser::CTX_FUNCTION] = ''; |
| 213 | 228 | } |
| 214 | 229 | } |
| 215 | 230 | |
| 216 | 231 | private function updateContext(Node $node): void |
| 217 | 232 | { |
| 218 | - switch (true) { |
|
| 233 | + switch (true) |
|
| 234 | + { |
|
| 219 | 235 | case $node instanceof Namespace_: |
| 220 | 236 | $this->context[AttributeParser::CTX_NAMESPACE] = $this->name($node->name); |
| 221 | 237 | break; |
@@ -240,7 +256,8 @@ discard block |
||
| 240 | 256 | */ |
| 241 | 257 | private function name($name): string |
| 242 | 258 | { |
| 243 | - if ($name === null) { |
|
| 259 | + if ($name === null) |
|
| 260 | + { |
|
| 244 | 261 | return ''; |
| 245 | 262 | } |
| 246 | 263 | |
@@ -110,8 +110,8 @@ discard block |
||
| 110 | 110 | { |
| 111 | 111 | $eval = new ConstExprEvaluator($this->evaluator($file, $context)); |
| 112 | 112 | |
| 113 | - foreach ($groups as $group) { |
|
| 114 | - foreach ($group->attrs as $attr) { |
|
| 113 | + foreach ($groups as $group){ |
|
| 114 | + foreach ($group->attrs as $attr){ |
|
| 115 | 115 | $arguments = $this->parseAttributeArguments($attr, $file, $eval); |
| 116 | 116 | |
| 117 | 117 | yield new AttributePrototype($attr->name->toString(), $arguments); |
@@ -128,8 +128,8 @@ discard block |
||
| 128 | 128 | |
| 129 | 129 | private function read(string $file): string |
| 130 | 130 | { |
| 131 | - if (!\is_readable($file)) { |
|
| 132 | - throw new InvalidArgumentException('Unable to read file "' . $file . '"'); |
|
| 131 | + if (!\is_readable($file)){ |
|
| 132 | + throw new InvalidArgumentException('Unable to read file "'.$file.'"'); |
|
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | return \file_get_contents($file); |
@@ -138,7 +138,7 @@ discard block |
||
| 138 | 138 | private function evaluator(string $file, array $context): Closure |
| 139 | 139 | { |
| 140 | 140 | return static function (Expr $expr) use ($file, $context) { |
| 141 | - switch (\get_class($expr)) { |
|
| 141 | + switch (\get_class($expr)){ |
|
| 142 | 142 | case File::class: |
| 143 | 143 | return $file; |
| 144 | 144 | |
@@ -152,19 +152,19 @@ discard block |
||
| 152 | 152 | $namespace = $context[self::CTX_NAMESPACE] ?? ''; |
| 153 | 153 | $function = $context[self::CTX_FUNCTION] ?? ''; |
| 154 | 154 | |
| 155 | - return \ltrim($namespace . '\\' . $function, '\\'); |
|
| 155 | + return \ltrim($namespace.'\\'.$function, '\\'); |
|
| 156 | 156 | |
| 157 | 157 | case ClassConstFetch::class: |
| 158 | 158 | $constant = $expr->name->toString(); |
| 159 | 159 | $class = $expr->class->toString(); |
| 160 | 160 | |
| 161 | - if (\strtolower($constant) === 'class') { |
|
| 161 | + if (\strtolower($constant) === 'class'){ |
|
| 162 | 162 | return $class; |
| 163 | 163 | } |
| 164 | 164 | |
| 165 | - $definition = $class . '::' . $constant; |
|
| 165 | + $definition = $class.'::'.$constant; |
|
| 166 | 166 | |
| 167 | - if (!\defined($definition)) { |
|
| 167 | + if (!\defined($definition)){ |
|
| 168 | 168 | $exception = new ParseError(\sprintf(self::ERROR_BAD_CONSTANT, $definition)); |
| 169 | 169 | throw Exception::withLocation($exception, $file, $expr->getStartLine()); |
| 170 | 170 | } |
@@ -172,7 +172,7 @@ discard block |
||
| 172 | 172 | return \constant($definition); |
| 173 | 173 | } |
| 174 | 174 | |
| 175 | - if ($expr instanceof MagicConst) { |
|
| 175 | + if ($expr instanceof MagicConst){ |
|
| 176 | 176 | return $context[$expr->getName()] ?? ''; |
| 177 | 177 | } |
| 178 | 178 | |
@@ -190,13 +190,13 @@ discard block |
||
| 190 | 190 | $hasNamedArguments = false; |
| 191 | 191 | $arguments = []; |
| 192 | 192 | |
| 193 | - foreach ($attr->args as $argument) { |
|
| 193 | + foreach ($attr->args as $argument){ |
|
| 194 | 194 | $value = $eval->evaluateDirectly($argument->value); |
| 195 | 195 | |
| 196 | - if ($argument->name === null) { |
|
| 196 | + if ($argument->name === null){ |
|
| 197 | 197 | $arguments[] = $value; |
| 198 | 198 | |
| 199 | - if ($hasNamedArguments) { |
|
| 199 | + if ($hasNamedArguments){ |
|
| 200 | 200 | $exception = new ParseError(self::ERROR_NAMED_ARGUMENTS_ORDER); |
| 201 | 201 | throw Exception::withLocation($exception, $file, $argument->getStartLine()); |
| 202 | 202 | } |
@@ -110,8 +110,10 @@ discard block |
||
| 110 | 110 | { |
| 111 | 111 | $eval = new ConstExprEvaluator($this->evaluator($file, $context)); |
| 112 | 112 | |
| 113 | - foreach ($groups as $group) { |
|
| 114 | - foreach ($group->attrs as $attr) { |
|
| 113 | + foreach ($groups as $group) |
|
| 114 | + { |
|
| 115 | + foreach ($group->attrs as $attr) |
|
| 116 | + { |
|
| 115 | 117 | $arguments = $this->parseAttributeArguments($attr, $file, $eval); |
| 116 | 118 | |
| 117 | 119 | yield new AttributePrototype($attr->name->toString(), $arguments); |
@@ -128,7 +130,8 @@ discard block |
||
| 128 | 130 | |
| 129 | 131 | private function read(string $file): string |
| 130 | 132 | { |
| 131 | - if (!\is_readable($file)) { |
|
| 133 | + if (!\is_readable($file)) |
|
| 134 | + { |
|
| 132 | 135 | throw new InvalidArgumentException('Unable to read file "' . $file . '"'); |
| 133 | 136 | } |
| 134 | 137 | |
@@ -137,8 +140,10 @@ discard block |
||
| 137 | 140 | |
| 138 | 141 | private function evaluator(string $file, array $context): Closure |
| 139 | 142 | { |
| 140 | - return static function (Expr $expr) use ($file, $context) { |
|
| 141 | - switch (\get_class($expr)) { |
|
| 143 | + return static function (Expr $expr) use ($file, $context) |
|
| 144 | + { |
|
| 145 | + switch (\get_class($expr)) |
|
| 146 | + { |
|
| 142 | 147 | case File::class: |
| 143 | 148 | return $file; |
| 144 | 149 | |
@@ -158,13 +163,15 @@ discard block |
||
| 158 | 163 | $constant = $expr->name->toString(); |
| 159 | 164 | $class = $expr->class->toString(); |
| 160 | 165 | |
| 161 | - if (\strtolower($constant) === 'class') { |
|
| 166 | + if (\strtolower($constant) === 'class') |
|
| 167 | + { |
|
| 162 | 168 | return $class; |
| 163 | 169 | } |
| 164 | 170 | |
| 165 | 171 | $definition = $class . '::' . $constant; |
| 166 | 172 | |
| 167 | - if (!\defined($definition)) { |
|
| 173 | + if (!\defined($definition)) |
|
| 174 | + { |
|
| 168 | 175 | $exception = new ParseError(\sprintf(self::ERROR_BAD_CONSTANT, $definition)); |
| 169 | 176 | throw Exception::withLocation($exception, $file, $expr->getStartLine()); |
| 170 | 177 | } |
@@ -172,7 +179,8 @@ discard block |
||
| 172 | 179 | return \constant($definition); |
| 173 | 180 | } |
| 174 | 181 | |
| 175 | - if ($expr instanceof MagicConst) { |
|
| 182 | + if ($expr instanceof MagicConst) |
|
| 183 | + { |
|
| 176 | 184 | return $context[$expr->getName()] ?? ''; |
| 177 | 185 | } |
| 178 | 186 | |
@@ -190,13 +198,16 @@ discard block |
||
| 190 | 198 | $hasNamedArguments = false; |
| 191 | 199 | $arguments = []; |
| 192 | 200 | |
| 193 | - foreach ($attr->args as $argument) { |
|
| 201 | + foreach ($attr->args as $argument) |
|
| 202 | + { |
|
| 194 | 203 | $value = $eval->evaluateDirectly($argument->value); |
| 195 | 204 | |
| 196 | - if ($argument->name === null) { |
|
| 205 | + if ($argument->name === null) |
|
| 206 | + { |
|
| 197 | 207 | $arguments[] = $value; |
| 198 | 208 | |
| 199 | - if ($hasNamedArguments) { |
|
| 209 | + if ($hasNamedArguments) |
|
| 210 | + { |
|
| 200 | 211 | $exception = new ParseError(self::ERROR_NAMED_ARGUMENTS_ORDER); |
| 201 | 212 | throw Exception::withLocation($exception, $file, $argument->getStartLine()); |
| 202 | 213 | } |
@@ -20,151 +20,151 @@ |
||
| 20 | 20 | interface ReaderInterface |
| 21 | 21 | { |
| 22 | 22 | /** |
| 23 | - * Gets a list of attributes and/or annotations applied to a class. |
|
| 24 | - * |
|
| 25 | - * @template T |
|
| 26 | - * |
|
| 23 | + * Gets a list of attributes and/or annotations applied to a class. |
|
| 24 | + * |
|
| 25 | + * @template T |
|
| 26 | + * |
|
| 27 | 27 | * @param ReflectionClass $class The reflection instance of the class from |
| 28 | 28 | which the class annotations should be read. |
| 29 | - * @param class-string<T>|null $name The class name of the annotation |
|
| 30 | - * and/or attribute. |
|
| 31 | - * |
|
| 32 | - * @return iterable<T> A list of class annotations and/or attributes. |
|
| 33 | - */ |
|
| 29 | + * @param class-string<T>|null $name The class name of the annotation |
|
| 30 | + * and/or attribute. |
|
| 31 | + * |
|
| 32 | + * @return iterable<T> A list of class annotations and/or attributes. |
|
| 33 | + */ |
|
| 34 | 34 | public function getClassMetadata(ReflectionClass $class, string $name = null): iterable; |
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | - * Gets the attribute or annotation applied to a class. |
|
| 38 | - * |
|
| 39 | - * @template T |
|
| 40 | - * |
|
| 37 | + * Gets the attribute or annotation applied to a class. |
|
| 38 | + * |
|
| 39 | + * @template T |
|
| 40 | + * |
|
| 41 | 41 | * @param ReflectionClass $class The reflection instance of the class from |
| 42 | 42 | which the class annotations should be read. |
| 43 | - * @param class-string<T> $name The class name of the annotation |
|
| 44 | - * and/or attribute. |
|
| 45 | - * |
|
| 46 | - * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 47 | - * annotation does not exist. |
|
| 48 | - */ |
|
| 43 | + * @param class-string<T> $name The class name of the annotation |
|
| 44 | + * and/or attribute. |
|
| 45 | + * |
|
| 46 | + * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 47 | + * annotation does not exist. |
|
| 48 | + */ |
|
| 49 | 49 | public function firstClassMetadata(ReflectionClass $class, string $name): ?object; |
| 50 | 50 | |
| 51 | 51 | /** |
| 52 | - * Gets a list of attributes and/or annotations applied to a function |
|
| 53 | - * or method. |
|
| 54 | - * |
|
| 55 | - * @template T |
|
| 56 | - * |
|
| 52 | + * Gets a list of attributes and/or annotations applied to a function |
|
| 53 | + * or method. |
|
| 54 | + * |
|
| 55 | + * @template T |
|
| 56 | + * |
|
| 57 | 57 | * @param ReflectionFunctionAbstract $function The reflection instance of |
| 58 | 58 | the function or method from which the function annotations should |
| 59 | 59 | be read. |
| 60 | - * @param class-string<T>|null $name The class name of the annotation |
|
| 61 | - * and/or attribute. |
|
| 62 | - * |
|
| 63 | - * @return iterable<T> A list of function annotations and/or attributes. |
|
| 64 | - */ |
|
| 60 | + * @param class-string<T>|null $name The class name of the annotation |
|
| 61 | + * and/or attribute. |
|
| 62 | + * |
|
| 63 | + * @return iterable<T> A list of function annotations and/or attributes. |
|
| 64 | + */ |
|
| 65 | 65 | public function getFunctionMetadata(ReflectionFunctionAbstract $function, string $name = null): iterable; |
| 66 | 66 | |
| 67 | 67 | /** |
| 68 | - * Gets the attribute or annotation applied to a function or method. |
|
| 69 | - * |
|
| 70 | - * @template T |
|
| 71 | - * |
|
| 68 | + * Gets the attribute or annotation applied to a function or method. |
|
| 69 | + * |
|
| 70 | + * @template T |
|
| 71 | + * |
|
| 72 | 72 | * @param ReflectionFunctionAbstract $function The reflection instance of |
| 73 | 73 | the function or method from which the function annotations should |
| 74 | 74 | be read. |
| 75 | - * @param class-string<T> $name The class name of the annotation and/or |
|
| 76 | - * attribute. |
|
| 77 | - * |
|
| 78 | - * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 79 | - * annotation does not exist. |
|
| 80 | - */ |
|
| 75 | + * @param class-string<T> $name The class name of the annotation and/or |
|
| 76 | + * attribute. |
|
| 77 | + * |
|
| 78 | + * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 79 | + * annotation does not exist. |
|
| 80 | + */ |
|
| 81 | 81 | public function firstFunctionMetadata(ReflectionFunctionAbstract $function, string $name): ?object; |
| 82 | 82 | |
| 83 | 83 | /** |
| 84 | - * Gets a list of attributes and/or annotations applied to a class property. |
|
| 85 | - * |
|
| 86 | - * @template T |
|
| 87 | - * |
|
| 84 | + * Gets a list of attributes and/or annotations applied to a class property. |
|
| 85 | + * |
|
| 86 | + * @template T |
|
| 87 | + * |
|
| 88 | 88 | * @param ReflectionProperty $property The reflection instance of the |
| 89 | 89 | property from which the property annotations should be read. |
| 90 | - * @param class-string<T>|null $name The class name of the annotation |
|
| 91 | - * and/or attribute. |
|
| 92 | - * |
|
| 93 | - * @return iterable<T> A list of property annotations and/or attributes. |
|
| 94 | - */ |
|
| 90 | + * @param class-string<T>|null $name The class name of the annotation |
|
| 91 | + * and/or attribute. |
|
| 92 | + * |
|
| 93 | + * @return iterable<T> A list of property annotations and/or attributes. |
|
| 94 | + */ |
|
| 95 | 95 | public function getPropertyMetadata(ReflectionProperty $property, string $name = null): iterable; |
| 96 | 96 | |
| 97 | 97 | /** |
| 98 | - * Gets the attribute or annotation applied to a property. |
|
| 99 | - * |
|
| 100 | - * @template T |
|
| 101 | - * |
|
| 98 | + * Gets the attribute or annotation applied to a property. |
|
| 99 | + * |
|
| 100 | + * @template T |
|
| 101 | + * |
|
| 102 | 102 | * @param ReflectionProperty $property The reflection instance of the |
| 103 | 103 | property from which the property annotations should be read. |
| 104 | - * @param class-string<T> $name The class name of the annotation and/or |
|
| 105 | - * attribute. |
|
| 106 | - * |
|
| 107 | - * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 108 | - * annotation does not exist. |
|
| 109 | - */ |
|
| 104 | + * @param class-string<T> $name The class name of the annotation and/or |
|
| 105 | + * attribute. |
|
| 106 | + * |
|
| 107 | + * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 108 | + * annotation does not exist. |
|
| 109 | + */ |
|
| 110 | 110 | public function firstPropertyMetadata(ReflectionProperty $property, string $name): ?object; |
| 111 | 111 | |
| 112 | 112 | /** |
| 113 | - * Gets a list of attributes and/or annotations applied to a class constant. |
|
| 114 | - * |
|
| 115 | - * @template T |
|
| 116 | - * |
|
| 113 | + * Gets a list of attributes and/or annotations applied to a class constant. |
|
| 114 | + * |
|
| 115 | + * @template T |
|
| 116 | + * |
|
| 117 | 117 | * @param ReflectionClassConstant $constant The reflection instance of the |
| 118 | 118 | class constant from which the constant annotations should be read. |
| 119 | - * @param class-string<T>|null $name The class name of the annotation |
|
| 120 | - * and/or attribute. |
|
| 121 | - * |
|
| 122 | - * @return iterable<T> A list of constant annotations and/or attributes. |
|
| 123 | - */ |
|
| 119 | + * @param class-string<T>|null $name The class name of the annotation |
|
| 120 | + * and/or attribute. |
|
| 121 | + * |
|
| 122 | + * @return iterable<T> A list of constant annotations and/or attributes. |
|
| 123 | + */ |
|
| 124 | 124 | public function getConstantMetadata(ReflectionClassConstant $constant, string $name = null): iterable; |
| 125 | 125 | |
| 126 | 126 | /** |
| 127 | - * Gets the attribute or annotation applied to a class constant. |
|
| 128 | - * |
|
| 129 | - * @template T |
|
| 130 | - * |
|
| 127 | + * Gets the attribute or annotation applied to a class constant. |
|
| 128 | + * |
|
| 129 | + * @template T |
|
| 130 | + * |
|
| 131 | 131 | * @param ReflectionClassConstant $constant The reflection instance of the |
| 132 | 132 | class constant from which the constant annotations should be read. |
| 133 | - * @param class-string<T> $name The class name of the annotation and/or |
|
| 134 | - * attribute. |
|
| 135 | - * |
|
| 136 | - * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 137 | - * annotation does not exist. |
|
| 138 | - */ |
|
| 133 | + * @param class-string<T> $name The class name of the annotation and/or |
|
| 134 | + * attribute. |
|
| 135 | + * |
|
| 136 | + * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 137 | + * annotation does not exist. |
|
| 138 | + */ |
|
| 139 | 139 | public function firstConstantMetadata(ReflectionClassConstant $constant, string $name): ?object; |
| 140 | 140 | |
| 141 | 141 | /** |
| 142 | - * Gets a list of attributes and/or annotations applied to a parameter of |
|
| 143 | - * a function or method. |
|
| 144 | - * |
|
| 145 | - * @template T |
|
| 146 | - * |
|
| 142 | + * Gets a list of attributes and/or annotations applied to a parameter of |
|
| 143 | + * a function or method. |
|
| 144 | + * |
|
| 145 | + * @template T |
|
| 146 | + * |
|
| 147 | 147 | * @param ReflectionParameter $parameter The reflection instance of the |
| 148 | 148 | parameter from which the parameter annotations should be read. |
| 149 | - * @param class-string<T>|null $name The class name of the annotation |
|
| 150 | - * and/or attribute. |
|
| 151 | - * |
|
| 152 | - * @return iterable<T> A list of parameter annotations and/or attributes. |
|
| 153 | - */ |
|
| 149 | + * @param class-string<T>|null $name The class name of the annotation |
|
| 150 | + * and/or attribute. |
|
| 151 | + * |
|
| 152 | + * @return iterable<T> A list of parameter annotations and/or attributes. |
|
| 153 | + */ |
|
| 154 | 154 | public function getParameterMetadata(ReflectionParameter $parameter, string $name = null): iterable; |
| 155 | 155 | |
| 156 | 156 | /** |
| 157 | - * Gets the attribute or annotation applied to a function's parameter. |
|
| 158 | - * |
|
| 159 | - * @template T |
|
| 160 | - * |
|
| 157 | + * Gets the attribute or annotation applied to a function's parameter. |
|
| 158 | + * |
|
| 159 | + * @template T |
|
| 160 | + * |
|
| 161 | 161 | * @param ReflectionParameter $parameter The reflection instance of the |
| 162 | 162 | parameter from which the parameter annotations should be read. |
| 163 | - * @param class-string<T> $name The class name of the annotation and/or |
|
| 164 | - * attribute. |
|
| 165 | - * |
|
| 166 | - * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 167 | - * annotation does not exist. |
|
| 168 | - */ |
|
| 163 | + * @param class-string<T> $name The class name of the annotation and/or |
|
| 164 | + * attribute. |
|
| 165 | + * |
|
| 166 | + * @return T|null The annotation/attribute or {@see null}, if the requested |
|
| 167 | + * annotation does not exist. |
|
| 168 | + */ |
|
| 169 | 169 | public function firstParameterMetadata(ReflectionParameter $parameter, string $name): ?object; |
| 170 | 170 | } |
@@ -116,7 +116,7 @@ discard block |
||
| 116 | 116 | bool $secure = false, |
| 117 | 117 | bool $httpOnly = true, |
| 118 | 118 | ?string $sameSite = null |
| 119 | - ) { |
|
| 119 | + ){ |
|
| 120 | 120 | $this->name = $name; |
| 121 | 121 | $this->value = $value; |
| 122 | 122 | $this->lifetime = $lifetime; |
@@ -221,30 +221,30 @@ discard block |
||
| 221 | 221 | */ |
| 222 | 222 | public function createHeader(): string |
| 223 | 223 | { |
| 224 | - $header = [rawurlencode($this->name) . '=' . rawurlencode((string)$this->value)]; |
|
| 224 | + $header = [rawurlencode($this->name).'='.rawurlencode((string)$this->value)]; |
|
| 225 | 225 | |
| 226 | - if ($this->lifetime !== null) { |
|
| 227 | - $header[] = 'Expires=' . gmdate(DateTime::COOKIE, $this->getExpires()); |
|
| 226 | + if ($this->lifetime !== null){ |
|
| 227 | + $header[] = 'Expires='.gmdate(DateTime::COOKIE, $this->getExpires()); |
|
| 228 | 228 | $header[] = "Max-Age={$this->lifetime}"; |
| 229 | 229 | } |
| 230 | 230 | |
| 231 | - if (!empty($this->path)) { |
|
| 231 | + if (!empty($this->path)){ |
|
| 232 | 232 | $header[] = "Path={$this->path}"; |
| 233 | 233 | } |
| 234 | 234 | |
| 235 | - if (!empty($this->domain)) { |
|
| 235 | + if (!empty($this->domain)){ |
|
| 236 | 236 | $header[] = "Domain={$this->domain}"; |
| 237 | 237 | } |
| 238 | 238 | |
| 239 | - if ($this->secure) { |
|
| 239 | + if ($this->secure){ |
|
| 240 | 240 | $header[] = 'Secure'; |
| 241 | 241 | } |
| 242 | 242 | |
| 243 | - if ($this->httpOnly) { |
|
| 243 | + if ($this->httpOnly){ |
|
| 244 | 244 | $header[] = 'HttpOnly'; |
| 245 | 245 | } |
| 246 | 246 | |
| 247 | - if ($this->sameSite->get() !== null) { |
|
| 247 | + if ($this->sameSite->get() !== null){ |
|
| 248 | 248 | $header[] = "SameSite={$this->sameSite->get()}"; |
| 249 | 249 | } |
| 250 | 250 | |
@@ -258,7 +258,7 @@ discard block |
||
| 258 | 258 | */ |
| 259 | 259 | public function getExpires(): ?int |
| 260 | 260 | { |
| 261 | - if ($this->lifetime === null) { |
|
| 261 | + if ($this->lifetime === null){ |
|
| 262 | 262 | return null; |
| 263 | 263 | } |
| 264 | 264 | |
@@ -223,28 +223,34 @@ discard block |
||
| 223 | 223 | { |
| 224 | 224 | $header = [rawurlencode($this->name) . '=' . rawurlencode((string)$this->value)]; |
| 225 | 225 | |
| 226 | - if ($this->lifetime !== null) { |
|
| 226 | + if ($this->lifetime !== null) |
|
| 227 | + { |
|
| 227 | 228 | $header[] = 'Expires=' . gmdate(DateTime::COOKIE, $this->getExpires()); |
| 228 | 229 | $header[] = "Max-Age={$this->lifetime}"; |
| 229 | 230 | } |
| 230 | 231 | |
| 231 | - if (!empty($this->path)) { |
|
| 232 | + if (!empty($this->path)) |
|
| 233 | + { |
|
| 232 | 234 | $header[] = "Path={$this->path}"; |
| 233 | 235 | } |
| 234 | 236 | |
| 235 | - if (!empty($this->domain)) { |
|
| 237 | + if (!empty($this->domain)) |
|
| 238 | + { |
|
| 236 | 239 | $header[] = "Domain={$this->domain}"; |
| 237 | 240 | } |
| 238 | 241 | |
| 239 | - if ($this->secure) { |
|
| 242 | + if ($this->secure) |
|
| 243 | + { |
|
| 240 | 244 | $header[] = 'Secure'; |
| 241 | 245 | } |
| 242 | 246 | |
| 243 | - if ($this->httpOnly) { |
|
| 247 | + if ($this->httpOnly) |
|
| 248 | + { |
|
| 244 | 249 | $header[] = 'HttpOnly'; |
| 245 | 250 | } |
| 246 | 251 | |
| 247 | - if ($this->sameSite->get() !== null) { |
|
| 252 | + if ($this->sameSite->get() !== null) |
|
| 253 | + { |
|
| 248 | 254 | $header[] = "SameSite={$this->sameSite->get()}"; |
| 249 | 255 | } |
| 250 | 256 | |
@@ -258,7 +264,8 @@ discard block |
||
| 258 | 264 | */ |
| 259 | 265 | public function getExpires(): ?int |
| 260 | 266 | { |
| 261 | - if ($this->lifetime === null) { |
|
| 267 | + if ($this->lifetime === null) |
|
| 268 | + { |
|
| 262 | 269 | return null; |
| 263 | 270 | } |
| 264 | 271 | |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | public const NONE = 'None'; |
| 12 | 12 | |
| 13 | 13 | private const VALUES = [self::STRICT, self::LAX, self::NONE]; |
| 14 | - private const DEFAULT = self::LAX; |
|
| 14 | + private const default = self::LAX; |
|
| 15 | 15 | |
| 16 | 16 | private ?string $sameSite = null; |
| 17 | 17 | |
@@ -36,6 +36,6 @@ discard block |
||
| 36 | 36 | return null; |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | - return ($sameSite === self::NONE && !$secure) ? self::DEFAULT : $sameSite; |
|
| 39 | + return ($sameSite === self::NONE && !$secure) ? self::default : $sameSite; |
|
| 40 | 40 | } |
| 41 | 41 | } |
@@ -57,8 +57,8 @@ |
||
| 57 | 57 | #[ReturnTypeWillChange] |
| 58 | 58 | public function gc($maxlifetime) |
| 59 | 59 | { |
| 60 | - foreach ($this->files->getFiles($this->directory) as $filename) { |
|
| 61 | - if ($this->files->time($filename) < time() - $maxlifetime) { |
|
| 60 | + foreach ($this->files->getFiles($this->directory) as $filename){ |
|
| 61 | + if ($this->files->time($filename) < time() - $maxlifetime){ |
|
| 62 | 62 | $this->files->delete($filename); |
| 63 | 63 | } |
| 64 | 64 | } |
@@ -57,8 +57,10 @@ |
||
| 57 | 57 | #[ReturnTypeWillChange] |
| 58 | 58 | public function gc($maxlifetime) |
| 59 | 59 | { |
| 60 | - foreach ($this->files->getFiles($this->directory) as $filename) { |
|
| 61 | - if ($this->files->time($filename) < time() - $maxlifetime) { |
|
| 60 | + foreach ($this->files->getFiles($this->directory) as $filename) |
|
| 61 | + { |
|
| 62 | + if ($this->files->time($filename) < time() - $maxlifetime) |
|
| 63 | + { |
|
| 62 | 64 | $this->files->delete($filename); |
| 63 | 65 | } |
| 64 | 66 | } |
@@ -61,7 +61,7 @@ discard block |
||
| 61 | 61 | $this->clientSignature = $clientSignature; |
| 62 | 62 | $this->lifetime = $lifetime; |
| 63 | 63 | |
| 64 | - if (!empty($id) && $this->validID($id)) { |
|
| 64 | + if (!empty($id) && $this->validID($id)){ |
|
| 65 | 65 | $this->id = $id; |
| 66 | 66 | } |
| 67 | 67 | } |
@@ -92,24 +92,24 @@ discard block |
||
| 92 | 92 | */ |
| 93 | 93 | public function resume(): void |
| 94 | 94 | { |
| 95 | - if ($this->isStarted()) { |
|
| 95 | + if ($this->isStarted()){ |
|
| 96 | 96 | return; |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | - if (!empty($this->id)) { |
|
| 99 | + if (!empty($this->id)){ |
|
| 100 | 100 | session_id($this->id); |
| 101 | - } else { |
|
| 101 | + }else{ |
|
| 102 | 102 | // always new id |
| 103 | 103 | session_id(session_create_id()); |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | - try { |
|
| 106 | + try{ |
|
| 107 | 107 | session_start(['use_cookies' => false]); |
| 108 | - } catch (Throwable $e) { |
|
| 108 | + }catch (Throwable $e){ |
|
| 109 | 109 | throw new SessionException('Unable to start session', $e->getCode(), $e); |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | - if (empty($this->id)) { |
|
| 112 | + if (empty($this->id)){ |
|
| 113 | 113 | //Sign newly created session |
| 114 | 114 | $_SESSION[self::CLIENT_SIGNATURE] = $this->clientSignature; |
| 115 | 115 | $_SESSION[self::SESSION_CREATED] = time(); |
@@ -120,7 +120,7 @@ discard block |
||
| 120 | 120 | $this->started = true; |
| 121 | 121 | |
| 122 | 122 | //Ensure that session is valid |
| 123 | - if (!$this->validSession()) { |
|
| 123 | + if (!$this->validSession()){ |
|
| 124 | 124 | $this->invalidateSession(); |
| 125 | 125 | } |
| 126 | 126 | } |
@@ -159,7 +159,7 @@ discard block |
||
| 159 | 159 | */ |
| 160 | 160 | public function commit(): bool |
| 161 | 161 | { |
| 162 | - if (!$this->isStarted()) { |
|
| 162 | + if (!$this->isStarted()){ |
|
| 163 | 163 | return false; |
| 164 | 164 | } |
| 165 | 165 | |
@@ -174,7 +174,7 @@ discard block |
||
| 174 | 174 | */ |
| 175 | 175 | public function abort(): bool |
| 176 | 176 | { |
| 177 | - if (!$this->isStarted()) { |
|
| 177 | + if (!$this->isStarted()){ |
|
| 178 | 178 | return false; |
| 179 | 179 | } |
| 180 | 180 | |
@@ -215,17 +215,17 @@ discard block |
||
| 215 | 215 | if ( |
| 216 | 216 | !array_key_exists(self::CLIENT_SIGNATURE, $_SESSION) |
| 217 | 217 | || !array_key_exists(self::SESSION_CREATED, $_SESSION) |
| 218 | - ) { |
|
| 218 | + ){ |
|
| 219 | 219 | //Missing session signature or timestamp! |
| 220 | 220 | return false; |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | - if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) { |
|
| 223 | + if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime){ |
|
| 224 | 224 | //Session expired |
| 225 | 225 | return false; |
| 226 | 226 | } |
| 227 | 227 | |
| 228 | - if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) { |
|
| 228 | + if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)){ |
|
| 229 | 229 | //Signatures do not match |
| 230 | 230 | return false; |
| 231 | 231 | } |
@@ -61,7 +61,8 @@ discard block |
||
| 61 | 61 | $this->clientSignature = $clientSignature; |
| 62 | 62 | $this->lifetime = $lifetime; |
| 63 | 63 | |
| 64 | - if (!empty($id) && $this->validID($id)) { |
|
| 64 | + if (!empty($id) && $this->validID($id)) |
|
| 65 | + { |
|
| 65 | 66 | $this->id = $id; |
| 66 | 67 | } |
| 67 | 68 | } |
@@ -92,24 +93,32 @@ discard block |
||
| 92 | 93 | */ |
| 93 | 94 | public function resume(): void |
| 94 | 95 | { |
| 95 | - if ($this->isStarted()) { |
|
| 96 | + if ($this->isStarted()) |
|
| 97 | + { |
|
| 96 | 98 | return; |
| 97 | 99 | } |
| 98 | 100 | |
| 99 | - if (!empty($this->id)) { |
|
| 101 | + if (!empty($this->id)) |
|
| 102 | + { |
|
| 100 | 103 | session_id($this->id); |
| 101 | - } else { |
|
| 104 | + } |
|
| 105 | + else |
|
| 106 | + { |
|
| 102 | 107 | // always new id |
| 103 | 108 | session_id(session_create_id()); |
| 104 | 109 | } |
| 105 | 110 | |
| 106 | - try { |
|
| 111 | + try |
|
| 112 | + { |
|
| 107 | 113 | session_start(['use_cookies' => false]); |
| 108 | - } catch (Throwable $e) { |
|
| 114 | + } |
|
| 115 | + catch (Throwable $e) |
|
| 116 | + { |
|
| 109 | 117 | throw new SessionException('Unable to start session', $e->getCode(), $e); |
| 110 | 118 | } |
| 111 | 119 | |
| 112 | - if (empty($this->id)) { |
|
| 120 | + if (empty($this->id)) |
|
| 121 | + { |
|
| 113 | 122 | //Sign newly created session |
| 114 | 123 | $_SESSION[self::CLIENT_SIGNATURE] = $this->clientSignature; |
| 115 | 124 | $_SESSION[self::SESSION_CREATED] = time(); |
@@ -120,7 +129,8 @@ discard block |
||
| 120 | 129 | $this->started = true; |
| 121 | 130 | |
| 122 | 131 | //Ensure that session is valid |
| 123 | - if (!$this->validSession()) { |
|
| 132 | + if (!$this->validSession()) |
|
| 133 | + { |
|
| 124 | 134 | $this->invalidateSession(); |
| 125 | 135 | } |
| 126 | 136 | } |
@@ -159,7 +169,8 @@ discard block |
||
| 159 | 169 | */ |
| 160 | 170 | public function commit(): bool |
| 161 | 171 | { |
| 162 | - if (!$this->isStarted()) { |
|
| 172 | + if (!$this->isStarted()) |
|
| 173 | + { |
|
| 163 | 174 | return false; |
| 164 | 175 | } |
| 165 | 176 | |
@@ -174,7 +185,8 @@ discard block |
||
| 174 | 185 | */ |
| 175 | 186 | public function abort(): bool |
| 176 | 187 | { |
| 177 | - if (!$this->isStarted()) { |
|
| 188 | + if (!$this->isStarted()) |
|
| 189 | + { |
|
| 178 | 190 | return false; |
| 179 | 191 | } |
| 180 | 192 | |
@@ -220,12 +232,14 @@ discard block |
||
| 220 | 232 | return false; |
| 221 | 233 | } |
| 222 | 234 | |
| 223 | - if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) { |
|
| 235 | + if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) |
|
| 236 | + { |
|
| 224 | 237 | //Session expired |
| 225 | 238 | return false; |
| 226 | 239 | } |
| 227 | 240 | |
| 228 | - if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) { |
|
| 241 | + if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) |
|
| 242 | + { |
|
| 229 | 243 | //Signatures do not match |
| 230 | 244 | return false; |
| 231 | 245 | } |