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

    −16

    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
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    <?php
    function getCategoryText($id){
        $cats = FNewsCategory::model()->getCategories();
    
        return $cats[$id];
    }
    ?>
    $this->widget(
        'zii.widgets.grid.CGridView', array(
            'id'           => 'newsListForm',
            'ajaxUpdate'   => false,
            'dataProvider' => $model->search(),
            'filter'       => $model,
            'cssFile'  => false,
    
            'pager'        => array(
                'class'    => 'CLinkPager',
                'pageSize' => 50,
                'cssFile'  => false,
            ),
    
            'columns'      => array(
                'id',
                'header',
                array(
                    'name'        => 'content',
                    'value'=>'mb_substr($data->content, 0, 300) . "..."'
                ),
                'ndate',
                array(
                    'name'        => 'fixed',
                    'type'        => 'raw',
                    'filter'=>CHtml::dropDownList(
                        'FNews[fixed]',
                        isset($_GET['FNews']['fixed']) ? $_GET['FNews']['fixed'] : '',
                        array('0'=>'Нет','1'=>'Да'),
                        array('empty' => 'Фильтр отсутствует')
                    ),
                    'value'=>'($data->fixed == "1") ? "Да" : "Нет"',
                    'htmlOptions' => array('width' => '140')
                ),
                array(
                    'name'        => 'rubric_id',
                    'type'        => 'raw',
                    'filter'=>CHtml::dropDownList(
                        'FNews[rubric_id]',
                        isset($_GET['FNews']['rubric_id']) ? $_GET['FNews']['rubric_id'] : '',
                        FNewsCategory::model()->getCategories(),
                        array('empty' => 'Фильтр отсутствует')
                    ),
                    'value'=>'getCategoryText($data->rubric_id)',
                    'htmlOptions' => array('width' => '140')
                ),
                array(
                    'name'        => 'lang',
                    'type'        => 'raw',
                    'filter'=>CHtml::dropDownList(
                        'FNews[lang]',
                        isset($_GET['FNews']['lang']) ? $_GET['FNews']['lang'] : '',
                        array('ukr'=>'Украинский','ru'=>'Русский','en'=>'Английский'),
                        array('empty' => 'Фильтр отсутствует')
                    ),
                    'htmlOptions' => array('width' => '60')
                ),
                array(
                    'class'    => 'CButtonColumn',
                    'template' => '{update}{delete}',
                    'buttons'  => array(
                        'update' => array(
                            'click' => $updateDialog,
                            'url'   => 'Yii::app()->controller->createUrl("admin/news",array("action"=>"newsList","make"=>"update","id"=>$data->primaryKey))',
                        ),
                        'delete' => array(
                            'url' => 'Yii::app()->controller->createUrl("admin/news",array("action"=>"newsList","make"=>"delete","id"=>$data->primaryKey))',
                        ),
                    ),
                ),
            ),
        )
    );
    
    Чем является getCategories:
    public function getCategories()
    {
        $array = CHtml::listData(FNewsCategory::model()->findAll(), 'rubric_id', 'rubric_nameRu');
        return $array;
    }

    Типичный шаблон на фреймворках, в данном случае на Yii 1.1 и от тим-лида!

    Да-да, функция прямо в шаблоне и вызывается из цикла. :)

    Запостил: M-A-X, 13 Декабря 2016

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

    • пыхоад
      Ответить
    • тут просто тимлид долбаёб, yii не виноват
      Ответить
      • Кстати, актив в гей-сексе тоже может считаться своеобразным тимлидом?
        Ответить
        • Стал твоим актом-тимлидом, проверь.
          Ответить
          • Подсидел тебя и вставил тебе промеж миндалин, проверь.
            Ответить
      • yii (как и любой другой пхп продукт) не может использоваться не долбаёбом
        Ответить
        • php сам по себе норм язык.
          Другое дело, что его простота послужила причиной засилья долбоебов. :)
          Ответить
          • Не простота, а гигантское количество бессмысленных фреймворков. Кажется - проще всего реализовать форму путём размещения её обработчика в верхней части скрипта, HTML-кода - в нижней. Но нет - долбоёбы требуют всё делить на какие-то хуевы модели, контроллеры, представления, паттерны, директории.

            P.S.: Кстати, "Битрикс" в госкорпорациях модно использовать, вероятно, по той причине, что не разбирающемуся в программировании госзаказчику достаточно показать, насколько дохуя там директорий и файлов с тысячами строк кода каждый, и тот решит, что, дескать, да - некая масштабная работа была проведена, и можно отвалить пару-тройку миллионов. Со скриптом из одной директории и десяти ссаных файликов такой номер не прокатил бы.
            Ответить
            • >>проще всего реализовать форму путём размещения её обработчика в верхней части скрипта
              Так и есть. https://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

              Архитектура не нужна. нужно ПИСАТЬ КОДДД1111
              Ответить
              • У Расмуса всё-таки какое-никакое разделение на модель, вьюху и контроллер имеется. Ещё добавить роутер и адаптер базы данных, и получим полноценный фреймворк.
                Ответить
                • Опять же, нахуя оно всё?
                  Ответить
                  • Для сайта-визитки оно не нужно. А для чего-нибудь сложного, с иерархической структурой, в доработке чего будет участвовать более одного человека, может пригодиться.

                    Вы видели, во что превращаются форумные движки после добавления новых фишек? В том же phpBB отказались от идеи фреймворка, MVC, и теперь в нём куча дублирующегося кода и довольно сложно что-нибудь допилить.
                    Ответить
                    • Ответьте мне тогда, почему почти нету готовых форумных не на пхп и написаных нормально? Вроде так просто и правильно писать правильно, но нет.
                      Ответить
                      • Всё есть

                        http://www.discourse.org/

                        http://spirit-project.com/
                        Ответить
                        • Почему тогда пользуются форумами, написанными на пыхе?
                          Ответить
                      • Форум пишется за день-два на yii2.... базовый функционал.. ну а фишки разные можно прикручивать ещё год... кому что...
                        Ответить
                    • Не понимаю, чем не угодил "phpBB", он вполне себе пиздат; а вот пока я разбирался с "XenForo", я порядком подзаебался. Один лишь поиск кода отправки электронных писем занял два часа (благо, встроенная в "WinRAR" возможность поиска по файлам более-менее помогла).
                      Ответить
                      • Угодил тебе в очко, проверь.
                        Ответить
                      • Да, XenForo — один из эталонных примеров оверинжиниринга. Zend Framework сам по себе неплохой фреймворк (за исключением нескольких неоптимально написанных частей, вместо которых лучше использовать свою библиотеку), но черти из XenForo навернули свой собственный фреймворк поверх Zend Framework'а с ООП ради ООП.

                        Вот нахрена нужно 100500 функций такого типа:
                        /**
                        	 * @return XenForo_Session
                        	 */
                        	public static function getSession()
                        	{
                        		return self::get('session');
                        	}


                        Digitalus, Magento, Social Engine, Pimcore, Slys, Cultsoft в ту же топку.
                        Ответить
                        • Попытка ввести типа-статическую типизацию

                          Пыховцы слышали звон, да не знают где он. У них все такое. "SPL" -- несмешная пародия на стандартные библиотеки других ЯПов, частично реализованные модификаторы доступа -- пародия на их аналоги в других языках, фреймворки пародии итд. Не Язык, а смех на палочке.
                          Ответить
                          • Ввёл свою типа статическую типизацию в твой анус, проверь.
                            Ответить
                          • Опять слышу мантру про статическую типизацию. Ну при чём она здесь?
                            Ответить
                            • А зачем они сделали функцию? Не потому ли что список ключей узнать нельзя, а список фуекций можно?

                              Бля, типизация и правда непричем
                              Ответить
                    • Сайт визитку в лапшекоде писать?
                      Извращенцы.
                      Ответить
          • >>php сам по себе норм язык.
            так может говорить только тот, кто ни одного другого языка в жизни не видел
            Ответить
            • нынешний пых - это жаба с динамической типизацией. все же оттуда спизжено, даже часть psr-стандартов
              Ответить
              • Это не правда. Не нужно таких глупостей говорить, пожалуйста.
                Ответить
                • а что глупости? все больше и больше пиздится с java и перетаскивается в пых.
                  psr-4
                  Xz\Ololo\SuperClass
                  лежит в
                  src/Xz/Ololo/SuperClass.php
                  а в java
                  xz.ololo.SuperClass
                  внезапно по тому же принципу.
                  Куча ключевых слов, интерфейсы, ООП - все это если не спизжено, то точно подражает.
                  Про все спизжено - да, загнул
                  Ответить
                  • >> psr-4
                    >> Xz\Ololo\SuperClass
                    >> лежит в
                    >> src/Xz/Ololo/SuperClass.php
                    >> а в java

                    В си mymodule лежит в mymodule.c
                    А в VisualBasic в mymodule.bas
                    внезапно по тому же принципу.

                    >>Куча ключевых слов
                    В PHP есть ключевое слово class, и в C++ тоже
                    нынешний пых - это С++ c динамической типизацией.

                    >>интерфейсы
                    В PHP есть интерфейсы, и в ObjectiveC тоже
                    нынешний пых - это ObjectiveC c динамической типизацией.

                    >>ООП
                    нынешний пых - это Smalltalk с функцией print_r

                    И да: в джаве тоже есть динамическая типизация.
                    Ответить
                    • class, interface,extends, implements, static, final, abstract - скорее такие ключевые слова общие и в пыхе и в java
                      interface Animal {
                      public void eat();
                      public void travel();
                      }
                      vs
                      interface Animal
                      {
                      public function eat(): void;
                      public function travel(): void;
                      }
                      сходства определенно есть
                      и что обсуждается - https://wiki.php.net/rfc/generics
                      Ответить
                      • >>скорее такие ключевые слова общие и в пыхе
                        А многие из них в C# еще, а часть вообще пришла их C++.

                        >>и что обсуждается
                        Генерики есть примерно везде, начиная с С++сных шаблонов:
                        https://en.wikipedia.org/wiki/Generic_programming

                        пыховцы конечно очень смешные: сначала делают ЯП без стат. типизации, затем, по кусочкам, ее туда тянут. Расшибут лоб о ковариантность и контрвариантность, как пить дать.
                        Ответить
                        • за счет изначальной простоты взлетели, после - выбрасывается мусор и потихоньку усложняется, чтоб и аудиторию не терять, и не вынуждать аудиторию выбрасывать тонны старого говнокода. Все продумано. Хочешь - коси под java/c#, хочешь - пиши как привык в стиле php4, только устаревшее не используй. ну или как в друпале8 смешай все подряд в аццкое месиво
                          Ответить
                          • Никаким образом ты не можешь косить под C# или Java, потому что у тебя нет нормальной стандартной библиотеки, нормальных фреймворков, вывода типов, модульности с описанием зависимостей нет, и даже нормального профилировщика под платформу нету.
                            Ответить
                            • http://php.net/manual/ru/book.spl.php - не такая заебенная конечно, но с учетом ориентации под веб вполне хватает
                              symfony/phalcon вполне нормальные
                              http://php.net/manual/ru/book.xhprof.php - от фейсбука профайлер
                              так что при желании вполне можно закосить
                              Ответить
                              • >>не такая заебенная конечно, но с учетом ориентации под веб вполне хватает
                                "хватает" это https://docs.oracle.com/javase/7/docs/api/ или https://msdn.microsoft.com/en-us/library/system(v=vs.110).aspx

                                А в "spl" мы видим примерно пару коллекций: ни работы с локалью, ни с текстом, ни с HTTP, ни с сетью ("ПОД ВЕБ" же все таки).


                                >>http://php.net/manual/ru/book.xhprof.php - от фейсбука профайлер

                                Профайлер это вот http://i.imgur.com/5Jvyvgq.png
                                Или вот https://docs.elementscompiler.com/Platforms/Cocoa/Instruments/Using_Instruments-_3-Leaks.png

                                В пыховом даже кучу нормально не посмотреть
                                Ответить
                              • Всем уже ясно, что ты на джаве отсилы пару хеловорлдов написал, а другие языки вообще в глаза не видел, вот тебе и кажется, что пыха слизана с джавы. Хватит юродствовать.
                                Ответить
                                • срачи - это весело ) пожалуй да, хватит на сегодня
                                  Ответить
                                • Знаете, я давно хотел признаться. На самом деле я в глаза не видел ни пыху, ни джаву, и вообще программировать не умею, а работаю инженером техподдержки. Мне просто не хватает общения.
                                  Ответить
                                  • Знаете, я давно хотел признаться. На самом деле я в глаза не видел компьютер, а работаю оленеводом.

                                    Мне просто нравится сраться.
                                    Ответить
                              • > http://php.net/manual/ru/book.xhprof.php - от фейсбука профайлер

                                Уточните, завезли ли его в PHP 5.6 (я уже не говорю про PHP 7.x).
                                Ответить
                                • Уже накопал. Для 5.6 нужно выбирать замену:
                                  https://sandro-keil.de/blog/2015/02/10/php-profiling-tools/
                                  Ответить
                            • > вывода типов
                              http://hacklang.org/
                              Ответить
                              • >>Hack provides instantaneous type checking by incrementally checking your files as you edit them. It typically runs in less than 200 milliseconds

                                В C#, например, или в Kotlin, типы выводятся и проверяются сами в момент компиляции.
                                Но можно и HH в фоне запустить.

                                Конечно это не так клево, но тоже помогает. Настоящий PHP стайл.

                                >>HHVM supports Hack, PHP 5 and the major features of PHP 7. We are aware of minor incompatibilities,

                                Отличный выбор. Удобно и стабильно.
                                Ответить
                  • Может это здравый смысл, а не спизжено? :)
                    Ответить
              • Прям таки жаба? :)
                Тогда все языки одинаковые - везде есть ООП, процедурное программирование, ФП.

                Никто на PHP не пишет в стиле жабы. (Ну кроме фреймворщиков. Писали бы уже на жабе тогда, а то дрочка какая-то :) )
                Ответить
            • Какой язык лучше для веба?
              И чем плох PHP?
              :)
              Ответить
              • >>Какой язык лучше для веба?
                Зачем для веба нужен особенный язык?

                Веб это всего-лишь интерфейс.

                А какой язык лучше для консоли?
                А для GUI?

                >>И чем плох PHP?
                ну что мне, опять про "фрактал плохого дизайна" рассказывать?
                Ответить
                • PHP - преимущественно язык для веба.

                  Поэтому прошу не съезжать.
                  А если не веб-разработчик, то вообще не лезть. :)

                  >ну что мне, опять про "фрактал плохого дизайна" рассказывать?

                  Что лучше и чем именно? :)
                  Ответить
                  • >>PHP - преимущественно язык для веба.

                    Не существует "языков для веба". Веб ничем не отличается от других областей.

                    Но Вы, вероятно, ничего кроме веб-сайтов на PHP не делали, потому не понимаете такие очевидные вещи.


                    >>А если не веб-разработчик,
                    У моих программ бывают и веб интерфецсы тоже.

                    >>Что лучше и чем именно?
                    Python, Ruby, Kotlin, C#, что угодно.

                    >>чем именно
                    архитектурой, фреймворками, стандартной библиотекой, модульностью, средствами разработки, дебага и профилирования, коммунити, см "фрактал плохого дизайна" в общем
                    Ответить
                    • > Не существует "языков для веба".
                      Parser 3. Попробуй применить его для чего-то другого...
                      Ответить
                      • > Parser 3

                        Вот ещё занятный пример из прошлого
                        https://en.wikipedia.org/wiki/RTML
                        Ответить
                        • > Remote Telescope Markup Language
                          О_о
                          Ответить
                        • "Пол Грэм толкнул свою систему на лиспе yahoo, но она была настолько непонятной, что они переписали её на перле. На ПЕРЛЕ!" (с) не помню кто
                          Ответить
                          • В 96-2001гг весь веб делали на перле, и никто не ныл. Ковырясли свои guestbook.cgi , где в одном файле были html, работа с хеш-валью базой и логика -- и ничего
                            Ответить
                    • А чем плоха в PHP стандартная поставка? :)
                      А SPL - то хер пойми что.
                      Ответить
              • :)
                Ответить
              • Ассемблер. На нём и html страницы будут быстрее открывацца.
                Ответить
                • Приложил раскалённый утюг к твоему анусу.
                  Ответить
                  • Чувствую прикосновения твоих влажных, горячих губ к моим ягодицам.
                    Ответить
                    • Надо ведь как-то расслабить очко партнёра, чтобы дружок глубже вошёл. Но закончим предварительные ласки и перейдём к ебле. Чувствуешь, как мой фаллос печёт в твоём сфинктере?
                      Ответить
                      • Чувствую, как твой влажный язычок щекочет мой сфинктер...
                        Глубже, глубже!..
                        Ответить
                        • Ласки закончились, я ж ясно выразился. У тебя галлюцинации - настолько хорошо я массирую твою простату своим фаллосом.
                          Ответить
                          • Закончились-так закончились...
                            Объясни мне одну вещь, как ты ешь этим ртом?
                            Ответить
                            • Вода из-под крана и перекись водорода делают принятие пищи не столь антисанитарным.
                              Ответить
                • Интересно, почему нету стоп-слов, чтобы черти по ветке не срали в комментах?
                  Ответить
                  • Насрал тебе на лицо, проверь.
                    Ответить
                  • Потому что это борда для свободного общения. Шел бы ты отсюда, мочератор.
                    Ответить
                    • Создайте себе отдельную борду и договаривайтесь там о перепихоне, долбоебы.
                      Ответить
                  • Ну как же, есть. #скрылник, например.
                    Ответить
                    • Ты блефуешь. #скрылник не работает, я проверял.
                      Ответить
                      • К нему нужен или юзерскрипт, скрывающий ник, или акой же юзерскрипт, встроенный в мозг.
                        Ответить
                        • Ахах, вспомнил "ералаш"... Чалма не работает без сковородки.
                          Ответить

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