"PHP" / Говнокод #21829 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 M-A-X, (Updated )

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

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

          P.S.: Кстати, "Битрикс" в госкорпорациях модно использовать, вероятно, по той причине, что не разбирающемуся в программировании госзаказчику достаточно показать, насколько дохуя там директорий и файлов с тысячами строк кода каждый, и тот решит, что, дескать, да - некая масштабная работа была проведена, и можно отвалить пару-тройку миллионов. Со скриптом из одной директории и десяти ссаных файликов такой номер не прокатил бы.
          Ответить
            • У Расмуса всё-таки какое-никакое разделение на модель, вьюху и контроллер имеется. Ещё добавить роутер и адаптер базы данных, и получим полноценный фреймворк.
              Ответить
                • Для сайта-визитки оно не нужно. А для чего-нибудь сложного, с иерархической структурой, в доработке чего будет участвовать более одного человека, может пригодиться.

                  Вы видели, во что превращаются форумные движки после добавления новых фишек? В том же phpBB отказались от идеи фреймворка, MVC, и теперь в нём куча дублирующегося кода и довольно сложно что-нибудь допилить.
                  Ответить
                  • Ответьте мне тогда, почему почти нету готовых форумных не на пхп и написаных нормально? Вроде так просто и правильно писать правильно, но нет.
                    Ответить
                  • Не понимаю, чем не угодил "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, потому что у тебя нет нормальной стандартной библиотеки, нормальных фреймворков, вывода типов, модульности с описанием зависимостей нет, и даже нормального профилировщика под платформу нету.
                          Ответить
                            • >>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 не пишет в стиле жабы. (Ну кроме фреймворщиков. Писали бы уже на жабе тогда, а то дрочка какая-то 🙂 )
              Ответить
            • >>Какой язык лучше для веба?
              Зачем для веба нужен особенный язык?

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

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

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

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

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

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

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

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


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

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

                  >>чем именно
                  архитектурой, фреймворками, стандартной библиотекой, модульностью, средствами разработки, дебага и профилирования, коммунити, см "фрактал плохого дизайна" в общем
                  Ответить
                  • > Не существует "языков для веба".
                    Parser 3. Попробуй применить его для чего-то другого...
                    Ответить
                      • "Пол Грэм толкнул свою систему на лиспе yahoo, но она была настолько непонятной, что они переписали её на перле. На ПЕРЛЕ!" (с) не помню кто
                        Ответить
                        • В 96-2001гг весь веб делали на перле, и никто не ныл. Ковырясли свои guestbook.cgi , где в одном файле были html, работа с хеш-валью базой и логика -- и ничего
                          Ответить
                  • А чем плоха в PHP стандартная поставка? 🙂
                    А SPL - то хер пойми что.
                    Ответить
            • Ассемблер. На нём и html страницы будут быстрее открывацца.
              Ответить
                • Чувствую прикосновения твоих влажных, горячих губ к моим ягодицам.
                  Ответить
                  • Надо ведь как-то расслабить очко партнёра, чтобы дружок глубже вошёл. Но закончим предварительные ласки и перейдём к ебле. Чувствуешь, как мой фаллос печёт в твоём сфинктере?
                    Ответить
                    • Чувствую, как твой влажный язычок щекочет мой сфинктер...
                      Глубже, глубже!..
                      Ответить
                      • Ласки закончились, я ж ясно выразился. У тебя галлюцинации - настолько хорошо я массирую твою простату своим фаллосом.
                        Ответить
                        • Закончились-так закончились...
                          Объясни мне одну вещь, как ты ешь этим ртом?
                          Ответить
                          • Вода из-под крана и перекись водорода делают принятие пищи не столь антисанитарным.
                            Ответить
              • Интересно, почему нету стоп-слов, чтобы черти по ветке не срали в комментах?
                Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8