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

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
foreach($this->_logs as $log)
{
    if($log[1]!==CLogger::LEVEL_PROFILE)
        continue;
    list($message,$level,$category,$timestamp)=$log;
    if(!strncasecmp($message,'begin:',6))
    {
        $log[0]=substr($message,6);
        $stack[]=$log;
    }
    elseif(!strncasecmp($message,'end:',4))
    {
        $token=substr($message,4);
        if(($last=array_pop($stack))!==null && $last[0]===$token)
        {
            $delta=$log[3]-$last[3];
            $this->_timings[]=array($message,$category,$delta);
        }
        else
            throw new CException(Yii::t('yii','CProfileLogRoute found a mismatching code block "{token}". Make sure the calls to Yii::beginProfile() and Yii::endProfile() be properly nested.',
                array('{token}'=>$token)));
    }
}

Yii 1, реализация профайлинга через лог (ну потому что есть же лог, зачем еще сущности плодить, классы же долго грузятся, а у нас самый лайтвейт фреймворк). Чтобы уж точно наверняка, код дублируется в CProfileLogRoute.

https://github.com/yiisoft/yii/blob/11c3010a82ce2c25332baacce568ff89e451896a/framework/logging/CLogger.php#L294
https://github.com/yiisoft/yii/blob/11c3010a82ce2c25332baacce568ff89e451896a/framework/logging/CProfileLogRoute.php#L137

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

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8