2012-11-06 3 views
0

Я использую PHP 5.2.9 в настоящий момент. Есть ли способ реорганизовать этот код таким образом, что его легче читать и лучше организовывать?Обучение рефактору PHP-кода

if ($is_read_only == true) { 
     echo ($affiliate['affiliate_gender'] == 'm') ? MALE : FEMALE; 
    } elseif ($error == true) { 
     if ($entry_gender_error == true) { 
      echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR; 
     } else { 
      echo ($a_gender == 'm') ? MALE : FEMALE; 
      echo tep_draw_hidden_field('a_gender'); 
     } 
    } else { 
     echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT; 
    } 
+2

Я предполагаю, что ваш код лучше отформатирован? Кроме того, вы скорее всего имеете в виду * рефактор *, а не * сжимаете *. –

+2

Иногда расстояние от кода упрощает чтение, самая большая помощь - отступы вложенных разделов. – Scuzzy

+5

Сжатие обычно затрудняет чтение. –

ответ

1

Это зависит от того, что именно вы подразумеваете под "compress"?

Поскольку вы не уточнили, что получаете базовый ответ.

Удаление пространства:

Если вы ждете, чтобы ускорить свой код в некотором роде, не беспокойтесь. Сжатие (уменьшение/удаление пробелов) php-файл не ускорит его время выполнения. PHP каждый раз читает файл, компилирует его в байт-код и запускает его. Это сделает ваши глаза кровоточащими, а также вашими коллегами. Просто не делай этого!

Для удобочитаемости/удобства:

Тогда вы бы разумны пространства кода/классов/функции соответственно на блоки, которые имеют смысл и легко читаемые. Это не только поможет вам, но и тем, кто работает рядом с вами. Используйте набор отступ уровней, распорные/кронштейн/гнездовые стили и т.д.

Для выполнения кода:

Есть множество способов для улучшения коды (классы/функция/петли/соединение/заявление), как в визуальной форме и ради производительности кода - которые могут быть профилированы/протестированы с использованием широкого спектра инструментов.

Надеюсь, что это поможет как указатель.

+0

Я извиняюсь Никхар, я использовал неправильную терминологию - в основном, глядя на точку с номером три (производительность кода) с классами/функциями, а не на то, чтобы потеряться в избыточном, если иначе, если что-то еще и т. Д. ... Я хочу улучшиться в улучшении/оптимизации , Спасибо за пробои! – blackhawk

+0

В этом случае я указываю вам здесь отправную точку: http://stackoverflow.com/questions/21133/simplest-way-to-profile-a-php-script. Множество вопросов, которые вы можете задать здесь, о том, как это сделать, так или иначе, и люди ответят! – nickhar

3

вы можете изменить if ($is_read_only == true) к if ($is_read_only), а также вашему другим, если заявлению, потому что ввод '== true' является излишним и ненужным

+0

Мне было интересно об этом - спасибо! – blackhawk

+0

, если вы не имеете в виду $ is_read_only === true – TecBrat

4

Я не уверен, почему вы хотите его в меньшем количестве строк, но здесь вы идете :

echo $is_read_only === true 
? $affiliate['affiliate_gender'] === 'm' ? MALE : FEMALE 
: $error === true 
? $entry_gender_error == true 
? tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR 
: ($a_gender === 'm' ? MALE : FEMALE) . tep_draw_hidden_field('a_gender') 
: tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT; 

Это, безусловно, не более читаемо. Считывание и сжатие, похоже, противоречат друг другу.

EDIT:

Для вызова в ней я пошел немного дальше.

echo $is_read_only 
? $affiliate['affiliate_gender'] === 'm' ? MALE : FEMALE 
: $error && !$entry_gender_error 
? ($a_gender === 'm' ? MALE : FEMALE) . tep_draw_hidden_field('a_gender') 
: tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . 
    tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . 
    ($error ? ENTRY_GENDER_ERROR : ENTRY_GENDER_TEXT); 

Это худшее, что я, как человек, может сделать.

Пусть Бог помилует мою душу :)

+2

О боже, у моих глаз истекает кровью! Останови это! – Sammitch

+1

LOL! Мне это нравится. Смущает врага! : P – iMoses

+3

+1 Поистине произведение искусства. Краткая, самодокументирующаяся и элегантная. Я сейчас рассматриваю все эти лишние разрывы строк, которые я использовал, но по крайней мере теперь я видел свет! – Gavin

1

Я предпочитаю это так:

if ($is_read_only) 
    echo ($affiliate['affiliate_gender'] == 'm') ? MALE : FEMALE; 
elseif ($error) 
    if ($entry_gender_error) 
     echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE. 
      '  ' . tep_draw_radio_field('a_gender', 'f', $female) . 
      '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR; 
    else 
     echo ($a_gender == 'm') ? MALE : FEMALE , tep_draw_hidden_field('a_gender'); 
else 
    echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . 
     '  ' . tep_draw_radio_field('a_gender', 'f', $female) . 
     '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT; 

Я избегать использования слишком долго эхо предложений, чтобы улучшить читаемость. К большому результату {s и} s тоже бесполезны.

Смежные вопросы