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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    'errorHandler' =>
        class yii\console\ErrorHandler#6 (6) {
          public $discardExistingOutput =>
          bool(true)
          public $memoryReserveSize =>
          int(262144)
          public $exception =>
          NULL
          private $_memoryReserve =>
          string(262144) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"...

    Где-то в недрах Yii2. Я, кажется, понимаю, что это и зачем (хотя не уверен, что это работает, когда памяти уже не хватило), но выглядит просто адово.

    Запостил: Fike, 12 Октября 2014

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

    • public function register()
      {
      ...
      // по умолчанию 262144
      if ($this->memoryReserveSize > 0) {
      $this->_memoryReserve = str_repeat('x', $this->memoryReserveSize);
      }
      register_shutdown_function([$this, 'handleFatalError']);
      }


      а потом в handleFatalError оно ансетится, очевидно, чтобы получилось это
      if (!class_exists('yii\\base\\ErrorException', false)) {
      require_once(__DIR__ . '/ErrorException.php');
      }


      Прикольный прием. Не понятно только - нафига вообще нужно фатальные ошибки обрабатывать. Ексепшн-то уже не поймаешь, только вон в велосипедный лог записать, да в браузер хитро отрендерить... так на то xdebug есть.
      Ответить

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