1. PHP / Говнокод #15968

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    <?
    						$arPrimary = array();
    						if(!empty($item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'])){
    							$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'];
    						}
    						if(!empty($item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'])){
    							$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'];
    						}
    						
    						if(!empty($arPrimary)):
    							$c = count($arPrimary); $i = 1;
    						?>
    							<ul class="primary">
    								<?foreach($arPrimary as $k => $v):
    									$last = false;
    									if($i == $c){
    										$last = true;
    									}
    								?>
    									<li<?if($last):?> class="last"<?endif;?>>
    										<span class="label"><?=$k?>:</span>
    										<?=$v?>
    									</li>
    								<?
    								$i++;
    								endforeach;?>
    							</ul>
    						<?endif;?>

    Bitrix же!

    Запостил: TBoolean, 13 Мая 2014

    Комментарии (14) RSS

    • Ок. Битрикс это конечно очень ужасно. Правда. Но, что говнистого в данном конкретном коде? Кириллица в ключе массива?
      Ответить
      • Как минимум. Если вы считаете, что присвоение каких-то значений в каких-то массивах в view, работа с вот такими индексами ['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'] является нормой, то тут вообще не о чем говорить.
        Ответить
        • )) Это все конечно интересно, но это битрикс, никто нормой это, конечно же, не считает, я надеюсь. Но иначе там не получится. Вот такие компоненты в битриксе, но ты же не станешь модифицировать каждый стандартный компонент, чтобы избежать такого кода во "вьюшке"? Можно конечно перенести часть кода в result_modifier но лучше от этого не станет.
          Ответить
        • работа с вот такими индексами ['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE']

          Весь битрикс на таких индексах. Если это говно не юзай битрикс.

          > что присвоение каких-то значений в каких-то массивах в view
          Это надо конечно в какой нибудь виджет запихать или что там в битриксе. Но даже если во вьюхе не смертельно. Эта логика логика представления, т.е. она влияет на то как будет показано.
          Ответить
          • > Весь битрикс на таких индексах.
            ['IB_ЭЛЕМЕНТ']['СВОЙСТВА']['МАТЕРИАЛ']['ЗНАЧЕНИЕ']
            Ответить
        • Такие многомерные индексы суть плата за универсальность инфоблоков. Если вы этого не понимаете, то и говорить не о чем с вами.

          Если вы вообще не очень понимаете логику работы битрикса, может стоит сначала немного погрузится в их говнокод, прежде чем бездоказательно обвинять их в говнокодистости? То, что они ради маркетинга обозвали свою систему построенной на приципах hMVC, вовсе не означает, что это так строго и есть.

          И главное, для вас главнее соответствие неким придуманным кем-то правилам или эффективность кода? От вас убудет, если прямо во view будут производиться некоторые мелочные вычисления? Или вы готовы ради следования идеалу дублировать кучу кода в свой кастомный компонент, или даже, возможно, делать result_modifier.php и дробить-дробить-дробить логику представления...
          Ответить
          • Это не универсальность , а хуйевая архитектура.
            Ответить
            • Не понимаешь если - зачем судишь?
              Ответить
              • ох, чувак, ДА! Мы со своими Laravel и ZF ничего не понимаем, а то, что там написано - вовсе не говнокод, это ФИЧА битрикса! Удачи!
                Ответить
                • Ты бы пример говнокода указал. Конкретно строчку и в чем суть. А то полоскать словами много ума не надо:)
                  Ответить
    • да после покупки оного продукта 1с`ом много-го-го чего и по русски появилось и по индусс-с-ки ))
      просто это стратегия развития битрикс-франчи похоже )))
      Ответить
    • >> $item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE']
      удобно использовать IDE с подсказками

      >> <li<?if($last):?> class="last"<?endif;?>>
      удобно верстальщику
      Ответить
      • Интересно бы глянуть, какие ещё индексы в этих массивах встречаются помимо инфоблокэоемента, свойств и значения...

        А то там поди какая-нибудь метаинфа, которая в 99% случаев никому кроме авторов движка не нужна, и можно было бы всё упростить до $item->material или $item["material"]
        Ответить
        • А зачем упрощать?
          Ассоциативные массивы это очень удобно. Если нужно что-то сохранить то всегда можно легко добавить.
          Ответить

    Добавить комментарий