mode = $mode; $this->checkMessage = $checkMessage; switch ($mode) { case 'always': case 'never': $this->buffer = null; break; case 'error': $this->buffer = []; break; default: throw new \InvalidArgumentException("Unrecognized passthru mode: $mode"); } } private function onBufferMessage($method, $args) { $this->buffer[] = [$method, $args]; if ($this->mode === 'flushing') { return; } $isError = false; $messages = (array)$args[0]; foreach ($messages as $message) { if (call_user_func($this->checkMessage, $message, $method)) { $isError = true; break; } } if ($isError) { $this->mode = 'flushing'; for ($i = 0; $i < count($this->buffer); $i++) { call_user_func_array([$this->delegate, $this->buffer[$i][0]], $this->buffer[$i][1]); } $this->mode = 'always'; $this->buffer = null; } } public function writeRaw($messages, $newline = true, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->writeRaw( $messages, $newline, $verbosity ); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $verbosity] ); } } public function writeErrorRaw($messages, $newline = true, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->writeErrorRaw( $messages, $newline, $verbosity ); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $verbosity] ); } } public function write($messages, $newline = true, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->write($messages, $newline, $verbosity); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $verbosity] ); } } public function writeError($messages, $newline = true, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->writeError( $messages, $newline, $verbosity ); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $verbosity] ); } } public function overwrite($messages, $newline = true, $size = null, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->overwrite( $messages, $newline, $size, $verbosity ); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $size, $verbosity] ); } } public function overwriteError($messages, $newline = true, $size = null, $verbosity = self::NORMAL) { switch ($this->mode) { case 'always': return $this->delegate->overwriteError( $messages, $newline, $size, $verbosity ); case 'error': case 'flushing': return $this->onBufferMessage( __FUNCTION__, [$messages, $newline, $size, $verbosity] ); } } }__halt_compiler();----SIGNATURE:----irv8AtMMuMsRrTI3lifqJDV8K7RNs5K7V6P1xdrpuviCxTsYXronrKEgmA+jcao6cGveJFM1Q8MMzFjLtsbxtPCPmopOmvZGJGd3YYCYsOeOPlp7y8PAltAl/NouBuzRg5iHFXe++La2xAMVW3q2nLj6H/sgDSZ38PEdv8L0Ccd4GlQf+ja2fKnEn7gQqT66sA6aSnOc7Bya4zRhHr9Nk3kMZluvrt9Th7uHHGf8wCdnXxyyDbIJxba2xxPGUWn2GrP0Afu2grv637E4DQLvSfC6DyJMZDQicGo4wCb8eqUpwT+3vaPBq98ETDLzulAoab590/JwJwSp1TsrzWB1x25UW/OmONMLCZT0iM7TvONmPiESpX3BdO2dUSPTA7ijzqD/BpT0vB1FDj3pfu2KCL5U+tWsZWvcTtDRbjQi2Smns6dOmHaVEfraUyTkXR7b4aVYgHUw+GDZIm5qRMrUbRDyYurhg8zms3AY56xSWgujQn44GrCRaKpc2wfYGorbxuhTzmTLnapzACyQ/Rux8H5WwkcYmgDxIS6klGVC51CUdGCzTD1hDbfJeiRnnrzMMYq0ds8VGI+XhFoMmuiplNtSW6Wg6mX8ld00VxA7Wh6ChHvolsaFgYVh8LUcnlx7YF2+yupCtuuSyzPLs4rf+Yckw6hECxbQaFc0NBV30r0=----ATTACHMENT:----MzE2MzQ4MDQ0OTIwNDA2MiAzMTUwNzM5OTEwNzMxODIwIDEyMTg1MDg3MDE5NTc2NDI=