for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Kaloa\Renderer;
use Exception;
use Kaloa\Renderer\Config;
use Kaloa\Renderer\Xml\Rule\FootnotesRule;
use Kaloa\Renderer\Xml\Rule\ListingsRule;
use Kaloa\Renderer\Xml\Rule\PrefixRelativeUrisRule;
use Kaloa\Renderer\Xml\Rule\TocRule;
use Kaloa\Renderer\Xml\Rule\YouTubeRule;
/**
*
* @api
*/
final class Factory
{
* @param string $type
* @param Config $config
* @return RendererInterface
* @throws Exception
public static function createRenderer($type, Config $config = null)
$renderer = null;
$renderer
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
if (null === $config) {
$config = new Config();
}
switch ($type) {
case 'commonmark':
$renderer = new CommonMarkRenderer();
break;
case 'inigo':
$renderer = new InigoRenderer($config);
case 'markdown':
$renderer = new MarkdownRenderer();
case 'xml':
$renderer = new XmlRenderer();
$renderer->registerRule(new TocRule());
$renderer->registerRule(new YouTubeRule());
$renderer->registerRule(new ListingsRule());
$renderer->registerRule(new PrefixRelativeUrisRule());
$renderer->registerRule(new FootnotesRule());
case 'xmllegacy':
$renderer = new XmlLegacyRenderer($config);
default:
throw new Exception('Unknown renderer "' . $type . '"');
// no break
return $renderer;
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.