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

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
// если пользователь авторизован
if($user->get('id')) { 
    $_SESSION['city-select'] = '';
    // если пользователь авторизован - определяем город
    $profile = $user->getOne('Profile');
    if ($profile) {
        $city = $profile->get('city');
    }
    
    // проходим все города и ищем подходящий
    $cities = $modx->runSnippet('pdoResources', array(
        'parents' => 205,
        'limit'   => 0,
        'includeTVs' => 'setCityForHome',
        'where'   => '{ "template" : "25" }',
        'tpl'     => '@CODE:{"id":"[[+id]]","city":"[[+tv.setCityForHome]]"}',
        'outputSeparator' => ','
    ));
    $redirectTo = 0;
    if($cities) { 
        $cities = $modx->fromJson('['.$cities.']');
        foreach( $cities as $c ) {
            if($c['city'] == $city) {
                $redirectTo = $c['id'];
                break;
            }
        }    
    }
} else {
    // если не авторизован - проверяем сессию
    
    $session = $_SESSION['city-select'];
    
    // если сессия пустая - проверяем, на какой странице находимся
    // если страница города и пустая сессия - записываем в сессию
    if($modx->resource->get('template') == 25) {
        $_SESSION['city-select'] = $modx->resource->get('pagetitle');
        $city = $modx->resource->get('pagetitle');
    } else {
        $city = (!empty($_SESSION['city-select']))? $_SESSION['city-select'] : $city;
    }
}

Сумрачный гений, сука. Строки 11-28 особенно примечательны.

Запостил: CatScratchFever CatScratchFever, (Updated )

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

      • Что такое база? Это типа джсона в файле что-то?

        ~спрыснул смузи~
        Ответить
    • Правильно, будущее за mnesia. У нас в `mnesia' нет никакого `ORM', поэтому я за неё. Щас прикрутим к ней eventual consistency и будет web-scale.
      Ответить
  • По-моему идея нежизнеспособна. PHP любят не за какие-то его классные фишки (кстати, какие?) а как раз за его обратную совместимость. На нём работает всё то же, что работало и 10 лет назад и 20, только ворнинги выключить. Почти как джава, только классов поменьше, а строк побольше. И вот на этом пункте «PHP 10 — end of life для legacy расширения» бизнес скажет, что не будет тратить деньги на удовлетворение эстетических потребностей программистов, а во многих случаях и вовсе не имеет такой возможности, и старый код будет поддерживать на старой ветке сколько получится, а новый писать на чём-то без таких сюрпризов, и ещё и на серверах сэкономит
    Ответить
    • Так обратной совместимости уже давно нет. В каждом ежегодном релизе PHP ещё со времён PHP 5 есть ломающие изменения. У меня есть проекты застрявшие кажется на PHP 5.3, потому что они больше не развиваются, а выделять отдельно время на их переписывание не хочется.

      Другое дело, что изменения довольно минимальны, и если вы с самого начала писали код качественно, не увлекаясь например преобразованием строк типа «abc» в int и не пытаясь получить $foo['bar'] где $foo === null, есть шанс что вы их вообще не заметите.
      Ответить
      • Почему ты споришь с собой?

        Кстати, а что за расширение там выпилилили? mysql?
        Ответить
        • То есть guest6 можно с собой спорить, а мне нельзя? >:[

          А про расширение не знаю, мне просто комменты понравились, особенно:

          > PHP любят не за какие-то его классные фишки а как раз за его обратную совместимость

          > Так обратной совместимости уже давно нет
          Ответить
            • И в джабе уже сломали её? Капец. Я только помню, что там fx-чтототам убрали из библиотеки стандартной и ещё постоянно ломали другую гуйню.

              Кстати, у меня в IDE bluefish, если я правильно помню название, есть кнопка «python 2 --> 3», который переводит print'ы в print()'ы.
              Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8