On 30/03/2012 13:06, Shameeha Pp wrote:
Sir, I have gone through the project "Refactoring:Insert/edit, Privileges, Operation,Structure". I think that refactoring means technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. I worked out for some portion of the application tbl_structure.php. <table id="tablestructure" class="data"> <thead> <tr> <th id="th<?php echo ++$i; ?>"></th> <th id="th<?php echo ++$i; ?>">#</th> <th id="th<?php echo ++$i; ?>" class="column"><?php echo __('Column'); ?></th> <th id="th<?php echo ++$i; ?>" class="type"><?php echo __('Type'); ?></th> <th id="th<?php echo ++$i; ?>" class="length"><?php echo __('Length(bytes)'); ?></th> <th id="th<?php echo ++$i; ?>" class="precision"><?php echo __('Precesion'); ?></th> <th id="th<?php echo ++$i; ?>" class="Scale"><?php echo __('Scale'); ?></th> <th id="th<?php echo ++$i; ?>" class="null"><?php echo __('Null'); ?></th> <th id="th<?php echo ++$i; ?>" class="default"><?php echo __('Default'); ?></th> <th id="th<?php echo ++$i; ?>" class="extra"><?php echo __('Extra'); ?></th> <?php if ($db_is_information_schema || $tbl_is_view) { ?> <th id="th<?php echo ++$i; ?>" class="view"><?php echo __('View'); ?></th> <?php } I transform the above code into the following code.
Hi,
I can't find the code you mention here in tbl_structure, beside, the names of the columns are not the same between the version before and after refactoring. I think you are refering to a previous mail by Marc Delisle where he set a small challenge for refactoring lines 199-209 in tbl_structure.php, but this part of the code has since been update, please check the latest version of master in our git repository.
<?php $field=array("Name","Type","Collation","Attributes","Null","Default","Extra","View"); reset($field); foreach ($field as $key => $value) { echo "__('$value')\t"; } ?>
A few remarks : - reset($field) is not necessary, because the foreach loop will go through each element in the array - best to use the gettext function : __() on the elements in the array, and not in the foreach loop, because otherwise the script generating the translation files will not pick these strings up. - the original code had html tags (<th>) surrounding each element, they don't appear in your example, actually all html tags seem to be missing from your code - in the original code, the 'View' element is displayed conditionally, in your refactoring it is always displayed.
I hope this helps you.