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

    +156

    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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    $entryCommentList = $db->getCommentList(array('blog_entry_id' => $id, 'uid' => !empty($user->id) ? $user->id : 0));
                                    array_walk(
                                            $entryCommentList,
                                            create_function('&$c,$k,$d', '$c["author_image_url"] = !empty($d[$c["author_id"]]) ? $d[$c["author_id"]] : null;'),
                                            $db->getPersonImage(
                                                    array_unique(
                                                            array_map(
                                                                    create_function('$c', 'return (int) $c["author_id"];'),
                                                                    array_filter(
                                                                            $entryCommentList,
                                                                            create_function('$c', 'return (int) $c["person_type_id"] == 1 && $c["is_hero"] != 1;')
                                                                    )
                                                            )
                                                    ),
                                                    2 /*14*/
                                            ) + $db->getPersonImage(
                                                    array_unique(
                                                            array_map(
                                                                    create_function('$c', 'return (int) $c["author_id"];'),
                                                                    array_filter(
                                                                            $entryCommentList,
                                                                            create_function('$c', 'return (int) $c["person_type_id"] == 4 && $c["is_hero"] != 1;')
                                                                    )
                                                            )
                                                    ),
                                                    14
                                            ) + $db->getPersonImage(
                                                    array_unique(
                                                            array_map(
                                                                    create_function('$c', 'return (int) $c["author_id"];'),
                                                                    array_filter(
                                                                            $entryCommentList,
                                                                            create_function('$c', 'return (int) $c["is_hero"] == 1;')
                                                                    )
                                                            )
                                                    ),
                                                    70
                                            )
                                    );

    Необходимо было поправить код вывода каментов. Он весь состоит из таких вот вещей, арэй волков, криэйт фанкшенов и прочей жести. Можно конечно понять что здесь происходит, но ваще проще переписать

    Запостил: gntw, 19 Июля 2010

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

    • Логика движка, видать, никудышная.
      Ответить
    • Думаю что лучше переписать с ноля. В идеальном варианте -- на другом язке
      Ответить
    • а на какого дьявола? скажите мне, зачем искусственно фабриковать человека, когда любая баба может его родить! (ц)
      это я про create_function.

      в общем, аффтар $c["is_hero"]!
      Ответить
      • Что бы код стал еще говенее, ибо ничего говенее чем eval (или рефлексия) человечество еще не выдумало
        Ответить
        • рефлексия не есть плохо, но в данном случае рльзы никакой от кодогенерации
          Ответить

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