for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Padawan\Command;
use Padawan\Domain\ProjectRepository;
use Padawan\Domain\Core\Project;
use Padawan\Domain\Core\Node\ClassData;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class ListCommand
*/
class ListCommand extends AsyncCommand
{
protected function configure()
$this->setName("list")
->setDescription("Shows all classes with filepath")
->addArgument(
"path",
InputArgument::REQUIRED,
"Path to the project root"
);
}
protected function execute(InputInterface $input, OutputInterface $output)
$path = $input->getArgument("path");
$container = $this->getContainer();
$container
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
$projectRepository = $this->getContainer()->get(ProjectRepository::class);
/** @var Project */
$project = $projectRepository->findByPath($path);
$classesList = [];
foreach ($project->getIndex()->getClasses() as $class) {
$classesList[] = [
'fqcn' => $class->fqcn->toString(),
'filepath' => $class->file
];
yield $output->write(json_encode($classesList));
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVarassignment in line 1 and the$higherassignment in line 2 are dead. The first because$myVaris never used and the second because$higheris always overwritten for every possible time line.