stream = $stream; $return = $this->run(); $this->stream = null; if ( is_bool( $return ) || is_wp_error( $return ) ) { return $return; } return true; } /** * Return the stream. * * If no stream is available it returns a mock object with no-op methods to prevent errors. * * @return \PopupMaker\Services\UpgradeStream|(object{ * send_event: Closure, * send_error: Closure, * send_data: Closure, * update_status: Closure, * update_task_status: Closure, * start_upgrades: Closure, * complete_upgrades: Closure, * start_task: Closure, * update_task_progress: Closure, * complete_task: Closure * }&\stdClass) Stream instance or mock object with no-op methods. */ public function stream() { $noop = /** * No-op function for mock stream methods. * * @param mixed ...$args Variable arguments (ignored). * * @return void */ function () {}; return is_a( $this->stream, '\PopupMaker\Services\UpgradeStream' ) ? $this->stream : (object) [ 'send_event' => $noop, 'send_error' => $noop, 'send_data' => $noop, 'update_status' => $noop, 'update_task_status' => $noop, 'start_upgrades' => $noop, 'complete_upgrades' => $noop, 'start_task' => $noop, 'update_task_progress' => $noop, 'complete_task' => $noop, ]; } }