| Conditions | 23 | 
| Paths | 3084 | 
| Total Lines | 83 | 
| 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 | ||
| 128 | public function convert($database = null) | ||
| 129 |     { | ||
| 130 |         if (!is_null($database)) { | ||
| 131 | $this->database = $database; | ||
| 132 | $this->customDb = true; | ||
| 133 | } | ||
| 134 | |||
| 135 | $tables = $this->getTables(); | ||
| 136 | |||
| 137 | // Loop over the tables | ||
| 138 |         foreach ($tables as $key => $value) { | ||
| 139 | // Do not export the ignored tables | ||
| 140 |             if (in_array($value['table_name'], static::$ignore)) { | ||
| 141 | continue; | ||
| 142 | } | ||
| 143 | |||
| 144 |             $down = "Schema::dropIfExists('{$value['table_name']}');"; | ||
| 145 |             $up = "Schema::create('{$value['table_name']}', function(Blueprint $"."table) {\n"; | ||
| 146 | |||
| 147 | $tableDescribes = $this->getTableDescribes($value['table_name']); | ||
| 148 | // Loop over the tables fields | ||
| 149 |             foreach ($tableDescribes as $values) { | ||
| 150 |                 $para = strpos($values->Type, '('); | ||
| 151 | $type = $para > -1 ? substr($values->Type, 0, $para) : $values->Type; | ||
| 152 | $nullable = 'NO' == $values->Nullable ? '' : '->nullable()'; | ||
| 153 |                 $default = empty($values->Default) || 'NULL' == $values->Default ? '' : "->default({$values->Default})"; | ||
| 154 | $default = 'CURRENT_TIMESTAMP' == $values->Default || 'current_timestamp()' == $values->Default ? '->useCurrent()' : $default; | ||
| 155 | $unsigned = false === strpos($values->Type, 'unsigned') ? '' : '->unsigned()'; | ||
| 156 | $this->hasDefaults($type, $values); | ||
| 157 | $this->methodName = $this->columnType($type); | ||
| 158 |                 if ('PRI' == $values->Key) { | ||
| 159 | $this->primaryKey = '->primary()'; | ||
| 160 |                     if ($methodName = $this->columnType($values->Data_Type, 'primaryKeys') && 'auto_increment' == $values->Extra) { | ||
| 161 | $this->primaryKey = '->autoIncrement()'; | ||
| 162 | } | ||
| 163 | } | ||
| 164 | |||
| 165 |                 $up .= '                $'."table->{$this->methodName}('{$values->Field}'{$this->defaultLength}){$this->primaryKey}{$nullable}{$default}{$unsigned};\n"; | ||
| 166 | $this->unsetData(); | ||
| 167 | }//end foreach | ||
| 168 | |||
| 169 | $tableIndexes = (array) $this->getTableIndexes($value['table_name']); | ||
| 170 |             if (!is_null($tableIndexes) && count($tableIndexes)) { | ||
| 171 |                 foreach ($tableIndexes as $index) { | ||
| 172 |                     if (Str::endsWith(@$index['Key_name'], '_index')) { | ||
| 173 |                         $up .= '                $'."table->index('".$index['Column_name']."');\n"; | ||
| 174 | } | ||
| 175 | } | ||
| 176 | } | ||
| 177 | |||
| 178 | $up .= " });\n\n"; | ||
| 179 | $Constraint = $ConstraintDown = ''; | ||
| 180 | /* | ||
| 181 | * @var array | ||
| 182 | */ | ||
| 183 | $tableConstraints = $this->getTableConstraints($value['table_name']); | ||
| 184 |             if (!is_null($tableConstraints) && $tableConstraints->count()) { | ||
| 185 | $Constraint = $ConstraintDown = " | ||
| 186 |             Schema::table('{$value['table_name']}', function(Blueprint $"."table) {\n"; | ||
| 187 | $tables = []; | ||
| 188 |                 foreach ($tableConstraints as $foreign) { | ||
| 189 |                     if (!in_array($foreign->Field, $tables)) { | ||
| 190 |                         $field = "{$foreign->Table}_{$foreign->Field}_foreign"; | ||
| 191 |                         $ConstraintDown .= '                $'."table->dropForeign('".$field."');\n"; | ||
| 192 |                         $Constraint .= '                $'."table->foreign('".$foreign->Field."')->references('".$foreign->References."')->on('".$foreign->ON."')->onDelete('".$foreign->onDelete."');\n"; | ||
| 193 | $tables[$foreign->Field] = $foreign->Field; | ||
| 194 | } | ||
| 195 | } | ||
| 196 | |||
| 197 | $Constraint .= " });\n\n"; | ||
| 198 | $ConstraintDown .= " });\n\n"; | ||
| 199 | } | ||
| 200 | |||
| 201 | $this->schema[$value['table_name']] = [ | ||
| 202 | 'up' => $up, | ||
| 203 | 'constraint' => $Constraint, | ||
| 204 | 'constraint_down' => $ConstraintDown, | ||
| 205 | 'down' => $down, | ||
| 206 | ]; | ||
| 207 | }//end foreach | ||
| 208 | |||
| 209 | return $this; | ||
| 210 | } | ||
| 211 | |||
| 316 | 
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.