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

    −2

    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
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    private static function preparePostProperty(&$data, $propName = [], $type = 'float'){
            if(!in_array($type, ['float', 'integer', 'string']))
                return;
            if(is_array($data) && !empty($propName)){
                $key = '$data["' . implode('"]["', $propName) . '"]';
    
                @eval("if(isset($key)) $key = ($type)$key;");
            }
        }
    
    
        public static function preparePost($data, $documentsObjects = []){
            if(is_array($data)){
                self::preparePostProperty($data, ['general', 'fromMtender', 'lotDetails', 'lotAmount']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountBrutto']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountNetto']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountPrepayment']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGuarantee']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGE']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountWithdraw']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountMaxWithdraw']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'transferDuration']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'nonPaymentMax']);
                self::preparePostProperty($data, ['general', 'additionalData', 'executionShouldStart']);
                self::preparePostProperty($data, ['general', 'additionalData', 'executionDuration']);
    
                foreach ($data['subject'] as $k => $subjects){
                    //data[subject][0][fromMtender][itemQuantity]
                    self::preparePostProperty($data, ['subject', $k, 'fromMtender', 'itemQuantity']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withoutVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withoutVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withVAT']);
    
                    foreach ($subjects['additionalData']['budget'] as $kb => $budgets){
                        self::preparePostProperty($data, ['subject', $k, 'additionalData', 'budget', $kb, 'budgetAmount']);
                    }
                }
    
                self::preparePostProperty($data, ['ca', 'additionalData', 'caPerson', 'caPersonCode']);
    
                self::preparePostProperty($data, ['eo', 'fromMtender', 'eoCode']);
                self::preparePostProperty($data, ['eo', 'additionalData', 'eoLicenses', 'eoValidityDuration']);
                self::preparePostProperty($data, ['eo', 'additionalData', 'eoPerson', 'eoPersonCode']);
    
                self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercent']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercentMax']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercent']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercentMax']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'maxPenalty']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'maxDelay']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'warrantyPeriod']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnSigned']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnFM']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnTermination']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondOnTermination']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'submitClaimsMax']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondClaimsMax']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'deliverOnClaims']);
            }
    
            self::appendPostDocuments($data, $documentsObjects);
    
            return $data;
        }

    ЧТОЕТА?

    Запостил: dd3d, 20 Августа 2018

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

    • Даже я, мэтр "PHP", не понял предназначение данного кода. Можешь ли ты пояснить, что он принимает и что выдаёт?
      Ответить
      • Почему в странах СНГ такое огромное количество говносайтов собранных из говна и палок ?
        Казалось бы, интернет огромен и можно легко поднять свои стандарты, главное желание. Но нет, везде какой-то пиздец, постоянно появляются «сливы» - то фл.ру, то сеоспринт. Пролистав исходники просто охуеваешь. Никакого мвц и в помине нет. Никакой абстрактизации, ничего. Просто какое-то ебаное говно.
        Почему же все так ? Неужели в наших краях все ПХПшники скатофилы (что?)
        Ну а чего ждать если у большинства с английским все хреново ?
        А ничего, есть ведь и книги на русском которые обучают нормально писать код. А есть ли ? Я и не искал.
        С другой стороны, знания английского позволяют куда шире гуглить.
        Такое ощущение что мы упустили очень важный момент и все пошло по пизде. Хотя, это можно сказать не только про программирование...
        Может заказчики дебилы хотят все и чтоб вчера, поэтому программисты пишут говно ? Непроизвольное испражнение получается.
        Но это вряд ли. Скорее всего тупо лень. Ну а нахуй делать нормально если и так работает ? Что ? Чтобы проект можно было поддерживать ? А нахуй надо ? Я же все равно скоро ухожу так как зарплата - залупа.
        Какой-то круговорот производства и пожирания говна.
        Заказчик пердит, менеджер пердит, программер срет, пользователи жрут, когда, в очередной раз, на хабре сообщают что «сайт ххх взломали».
        Что ты говоришь ? Выложить свой код ? А ты думаешь я не говнокод пишу ?
        Ах это язык меня вынуждает ?
        Ну нет, это все мне досталось по наследству, а что не досталось - насрал сам. Почему ? Да так получилось, а времени переделывать нету. Ну, хотя бы МВЦ и фреймворк...вместо клея между говном и палками.
        Ну и что же со всем этим делать ?
        Да в общем хуй знает.
        Ответить
        • >>скатофилы
          любят электрических скатов?

          С остальным согласен
          Ответить
        • Ну а что, это же какой-то сайт, а не важное приложение для запуска спутников, в которое серьёзная математика вшита, надо подгонять под новые достижения науки и за поддержку в течение 30 лет платят.
          Хотели быстро и подешевле, чтоб начать зарабатывать в интернете - получайте говносайт за копейку.

          Ну разве что, за рубль можно такое говно сто раз переписать с нуля, получив ноль легаси кода и нескучные обои.
          Ответить
          • Подобный код встречается в разных гос. системах. Тоже денег нет - отдают проекты тем кто сделает дешевле (и с максимальным откатом). Если сделать аудит таких систем - будет пиздец.

            Да вообще во всем «инфобизнесе» какая-то срака.
            Прилетела ебаная саранча из миллиона воинов анала (любителей делать все быстро и через жопу, главное заработать).
            Апп сторы - сдохли, задушили. Монетизация по средствам рекламы - задушили.
            Игры выпускают тоже слепленные из говна и палок, потому-что все расходы окупаются еще на стадии «раннего доступа», а дальше развивать не надо.

            Это какой-то паровоз говна (говновоз?) потерявший сцепление с говнорельсами и на полной скорости катится в говноад
            Ответить
            • Что же, может удастся это переждать. Когда-нибудь произойдёт насыщение говном, и его перестанут активно покупать/использовать.
              Только для этого сначала надо со свистом войти в говноад и пробыть там какое-то время.
              Ответить
              • Чтобы его переждать, нужно
                1. Самому не потерять здравый смысл и мастерство
                2. Иметь нерушимую базу. Когда всё улетит в говноад, рухнут системы, в которых говна друг друга взаимно поддерживали. Ни на одно говно надеяться нельзя
                3. Говно не оставит наследия, нельзя будет переделать говно в хорошее. Всё говно придётся выкинуть

                Что же нам остаётся? Гну слэш линукс и фри софтвер.
                Ответить
                • А переждать не получится. Когда все очухаются, говно будет уже среди нас.
                  Вот у знакомого был бизнес - делал WordPress шаблоны для ThemeForest, тоже говно, но хорошо упакованное, насрал на 500,000$. И совсем не пахло. Потом пришли индусы и начали выкладывать говно пачками по 10$ за штуку. Зачем делать шаблон со 100 разными вариантами главной страницы, если индус сделает 100 разных шаблонов за это же время. И всё, уже нету у меня этого знакомого. А он тоже говорил что "говно пройдет". А ведь про все это говно еще Моцарт писал.
                  Ответить

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