for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Alpixel\Bundle\MenuBundle\Validator\Constraints;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class RouteExistsValidator extends ConstraintValidator
{
private $router;
public function __construct(Router $router)
$this->router = $router;
}
public function validate($value, Constraint $constraint)
$match = false;
if (strpos($value, '/') === 0) {
$routeCollection = $this->router->getRouteCollection()->all();
foreach ($routeCollection as $name => $route) {
if ($match = $route->getPath() === $value) {
break;
} else {
$handle = curl_init($value);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$response
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
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if ($httpCode >= 200 && $httpCode < 300) {
$match = true;
if ($match === false) {
$this->context->buildViolation($constraint->message)
->setParameter('%string%', $value)
->addViolation();
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.