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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function indexAction()
        {
            if (Zend_Auth::getInstance()->hasIdentity()) {
                Zend_Auth::getInstance()->getIdentity();
            }
        }

    Запостил: __proto__, 16 Августа 2014

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

    • конечно можно написать так
      if($identy = Zend_Auth::getInstance()->getIdentity()){
          ....
        }
      но где тут гавно-код
      Ответить
      • Функцию назвали "гет", а вызвали для побочного эффекта?
        Ответить
        • В общем случае никакого говнокода в приведенном коде нет, потому что get может выполнять сложную операцию.
          Ответить
          • Есть разница между "может" и "должен". Это понятно, что он что-то выполняет такое, ради чего его вызвали, но побочные эффекты в функции с таким названием - это плохо. Я так подозреваю, что эта функция для того, чтобы чего-то там найти может стартануть сессию, или к базе подключится, что плохо, т.как лучше, чтобы операции, которые требуют глобальных изменений состояния программы вызывались явно. Иначе очень тяжело потом обнаружить почему состояние программы такое, а не другое.
            Но я признаю, что для ПХП-писателей это сложно, и незачем, вобщем, забивать себе голову: работает, ну и здорово.
            Ответить
    • функция идёт получать паспорт
      Ответить
    • В чем ГК? Из контекста не ясно.
      Лучше конечно использовать что то вроде
      $ident = Zend_Auth::getInstance()->hasIdentity()?Zend_Auth::getInstance( )->getIdentity():null;
      Но особого ГК не замечаю, иногда как раз и нужно, если есть авторизация, выполнить более 1 строки кода.
      Ответить

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