Hi,
As refactoring ideas are numerous in the GSoC 2012 ideas list, I propose a challenge. The goal is to discuss on this list an existing code snippet from phpMyAdmin and to arrive at the best possible refactored version.
At the same time, potential students can show their refactoring skills or learn what refactoring is about.
Let's discuss these lines from tbl_structure.php (in current master, these start at line 263 of the script):
$start = 0; if (strlen($type) > $GLOBALS['cfg']['LimitChars']) { $start = 13; $type = '<abbr title="' . $type . '">' . substr($type, 0, $GLOBALS['cfg']['LimitChars']) . '</abbr>'; }
unset($field_charset); if ((substr($type, $start, 4) == 'char' || substr($type, $start, 7) == 'varchar' || substr($type, $start, 4) == 'text' || substr($type, $start, 8) == 'tinytext' || substr($type, $start, 10) == 'mediumtext' || substr($type, $start, 8) == 'longtext' || substr($type, $start, 3) == 'set' || substr($type, $start, 4) == 'enum') && !$extracted_fieldspec['binary'] ) { if (strpos($type, ' character set ')) { $type = substr($type, 0, strpos($type, ' character set ')); } if (!empty($row['Collation'])) { $field_charset = $row['Collation']; } else { $field_charset = ''; } } else { $field_charset = ''; }