for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types = 1);
/*
* This file is part of the KleijnWeb\PhpApi\Descriptions package.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace KleijnWeb\PhpApi\Middleware\Util;
use KleijnWeb\PhpApi\Descriptions\Description\Schema\ScalarSchema;
use KleijnWeb\PhpApi\Descriptions\Description\Schema\Schema;
class ParameterTypePatternResolver
{
/**
* @param Schema $schema
* @return string
public function resolve(Schema $schema): string
$typePattern = '.*';
switch ($type = $schema->getType()) {
$type
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
$myVar = 'Value'; $higher = false; if (rand(1, 6) > 3) { $higher = true; } else { $higher = false; }
Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.
$myVar
$higher
case Schema::TYPE_INT:
$typePattern = '\d+';
break;
case Schema::TYPE_NUMBER:
$typePattern = '\d+(\.\d+)?';
case Schema::TYPE_NULL:
$typePattern = 'null';
case Schema::TYPE_STRING:
/** @var $schema ScalarSchema $routeString */
if ($pattern = $schema->getPattern()) {
$typePattern = $pattern;
} elseif ($enum = $schema->getEnum()) {
$typePattern = '('.implode('|', $enum).')';
}
default:
return $typePattern;
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.