| Conditions | 10 |
| Paths | 3 |
| Total Lines | 109 |
| Code Lines | 60 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 63 | public function execute(XmlConfigDomDocument $document) |
||
| 64 | { |
||
| 65 | // set up our default namespace |
||
| 66 | $document->setDefaultNamespace(self::XML_NAMESPACE, 'config_handlers'); |
||
| 67 | |||
| 68 | // init our data arrays |
||
| 69 | $handlers = array(); |
||
| 70 | |||
| 71 | foreach ($document->getConfigurationElements() as $configuration) { |
||
| 72 | if (!$configuration->has('handlers')) { |
||
| 73 | continue; |
||
| 74 | } |
||
| 75 | |||
| 76 | // let's do our fancy work |
||
| 77 | /** @var XmlConfigDomElement $handler */ |
||
| 78 | foreach ($configuration->get('handlers') as $handler) { |
||
| 79 | $pattern = $handler->getAttribute('pattern'); |
||
| 80 | |||
| 81 | $category = Toolkit::normalizePath(Toolkit::expandDirectives($pattern)); |
||
| 82 | |||
| 83 | $class = $handler->getAttribute('class'); |
||
| 84 | |||
| 85 | $transformations = array( |
||
| 86 | XmlConfigParser::STAGE_SINGLE => array(), |
||
| 87 | XmlConfigParser::STAGE_COMPILATION => array(), |
||
| 88 | ); |
||
| 89 | if ($handler->has('transformations')) { |
||
| 90 | /** @var XmlConfigDomElement $transformation */ |
||
| 91 | foreach ($handler->get('transformations') as $transformation) { |
||
| 92 | $path = Toolkit::literalize($transformation->getValue()); |
||
| 93 | $for = $transformation->getAttribute('for', XmlConfigParser::STAGE_SINGLE); |
||
| 94 | $transformations[$for][] = $path; |
||
| 95 | } |
||
| 96 | } |
||
| 97 | |||
| 98 | $validations = array( |
||
| 99 | XmlConfigParser::STAGE_SINGLE => array( |
||
| 100 | XmlConfigParser::STEP_TRANSFORMATIONS_BEFORE => array( |
||
| 101 | XmlConfigParser::VALIDATION_TYPE_RELAXNG => array( |
||
| 102 | ), |
||
| 103 | XmlConfigParser::VALIDATION_TYPE_SCHEMATRON => array( |
||
| 104 | ), |
||
| 105 | XmlConfigParser::VALIDATION_TYPE_XMLSCHEMA => array( |
||
| 106 | ), |
||
| 107 | ), |
||
| 108 | XmlConfigParser::STEP_TRANSFORMATIONS_AFTER => array( |
||
| 109 | XmlConfigParser::VALIDATION_TYPE_RELAXNG => array( |
||
| 110 | ), |
||
| 111 | XmlConfigParser::VALIDATION_TYPE_SCHEMATRON => array( |
||
| 112 | ), |
||
| 113 | XmlConfigParser::VALIDATION_TYPE_XMLSCHEMA => array( |
||
| 114 | ), |
||
| 115 | ), |
||
| 116 | ), |
||
| 117 | XmlConfigParser::STAGE_COMPILATION => array( |
||
| 118 | XmlConfigParser::STEP_TRANSFORMATIONS_BEFORE => array( |
||
| 119 | XmlConfigParser::VALIDATION_TYPE_RELAXNG => array( |
||
| 120 | ), |
||
| 121 | XmlConfigParser::VALIDATION_TYPE_SCHEMATRON => array( |
||
| 122 | ), |
||
| 123 | XmlConfigParser::VALIDATION_TYPE_XMLSCHEMA => array( |
||
| 124 | ), |
||
| 125 | ), |
||
| 126 | XmlConfigParser::STEP_TRANSFORMATIONS_AFTER => array( |
||
| 127 | XmlConfigParser::VALIDATION_TYPE_RELAXNG => array( |
||
| 128 | ), |
||
| 129 | XmlConfigParser::VALIDATION_TYPE_SCHEMATRON => array( |
||
| 130 | ), |
||
| 131 | XmlConfigParser::VALIDATION_TYPE_XMLSCHEMA => array( |
||
| 132 | ), |
||
| 133 | ), |
||
| 134 | ), |
||
| 135 | ); |
||
| 136 | if ($handler->has('validations')) { |
||
| 137 | /** @var XmlConfigDomElement $validation */ |
||
| 138 | foreach ($handler->get('validations') as $validation) { |
||
| 139 | $path = Toolkit::literalize($validation->getValue()); |
||
| 140 | $type = null; |
||
|
|
|||
| 141 | if (!$validation->hasAttribute('type')) { |
||
| 142 | $type = $this->guessValidationType($path); |
||
| 143 | } else { |
||
| 144 | $type = $validation->getAttribute('type'); |
||
| 145 | } |
||
| 146 | $for = $validation->getAttribute('for', XmlConfigParser::STAGE_SINGLE); |
||
| 147 | $step = $validation->getAttribute('step', XmlConfigParser::STEP_TRANSFORMATIONS_AFTER); |
||
| 148 | $validations[$for][$step][$type][] = $path; |
||
| 149 | } |
||
| 150 | } |
||
| 151 | |||
| 152 | $handlers[$category] = isset($handlers[$category]) |
||
| 153 | ? $handlers[$category] |
||
| 154 | : array( |
||
| 155 | 'parameters' => array(), |
||
| 156 | ); |
||
| 157 | $handlers[$category] = array( |
||
| 158 | 'class' => $class, |
||
| 159 | 'parameters' => $handler->getAgaviParameters($handlers[$category]['parameters']), |
||
| 160 | 'transformations' => $transformations, |
||
| 161 | 'validations' => $validations, |
||
| 162 | ); |
||
| 163 | } |
||
| 164 | } |
||
| 165 | |||
| 166 | $data = array( |
||
| 167 | 'return ' . var_export($handlers, true), |
||
| 168 | ); |
||
| 169 | |||
| 170 | return $this->generate($data, $document->documentURI); |
||
| 171 | } |
||
| 172 | |||
| 202 |
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.