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

    +157

    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
    protected function _defineUser()
        {
            if ($this->_getParam('controller') == 'profile')
            {
                // check for mb and sf
                if ($this->_getParam('action') == 'mb')
                {
                    $user = new Dbrow_User();
                    $this->userId = $user->getIdByMbId($this->currentId);
                }
                if ($this->_getParam('action') == 'sf')
                {
                    $user = new Dbrow_User();
                    $this->userId = $user->getIdBySfId($this->currentId);
                }
            }
            
            if ($this->userId <= 0)
            {
                $this->userId = (int)$this->_getParam('userId');
            }
            if ($this->userId <= 0)
            {
                $this->userId = (int)$this->currentId;
            }
            if ($this->userId <= 0 && Static_Auth::isLogged())
            {
                $this->user   = Static_Auth::getUser();
                $this->userId = $this->user->id;
            }
                else 
                {
                    $this->user = new Dbrow_User();
                    $this->user->loadById($this->userId, array());
                }
                
            $this->view->user = $this->user;
    
            self::$curUser = $this->user;
            //var_dump($this->user->parentEssences);
            //exit;
        }

    just piece of shit

    Запостил: mykola, 25 Октября 2010

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

    • просто до слез умиляет кусок
      if ($this->userId <= 0)
      ...
              if ($this->userId <= 0)
      ...
              if ($this->userId <= 0 && Static_Auth::isLogged())
      ...

      идентичная реакция в // check for mb and sf
      и десять раз создающийся Dbrow_User
      Ответить
      • Ну, в теории, ничто не мешает $this->userId изменяться меж условиями.
        Ответить
      • Видимо автор этим хотел сказать: "Я все равно узнаю твой userId!" ;)
        Ответить
        • а вдруг.
          Ответить
          • Печаль в том, что программист вынужден был написать такое уг ибо "фреймворк" тупо не позволяет писать иначе. один чувак с завышеным чсв написал нечто, студенты посмотрели, изучили и повторили (а хуле, он ведь гуру, истина в последней инстанции). Теперь разгребают :)
            И да, userId таки случился 0. Невзирая еще на десяток подобных проверок на разных уровнях иерархии.
            Ответить
            • "фреймворк" менять нельзя?
              потому что, это я ха-ха, а на самом деле -- серьезные проблемы в проектировании
              Ответить
              • Угу. Уже месяца 4 меняют. "Что написано пером, не вырубить топором".
                Ответить
                • ах да, проблемы совместимости. главный вопрос: как поменять, что бы ничего не упало?
                  (
                  Ответить

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