fileExists( $this->params['src'], $predicates ); if ( $srcExists === false ) { if ( $this->getParam( 'ignoreMissingSource' ) ) { $this->cancelled = true; // no-op // Update file existence predicates (cache 404s) $predicates[self::ASSUMED_EXISTS][$this->params['src']] = false; $predicates[self::ASSUMED_SIZE][$this->params['src']] = false; $predicates[self::ASSUMED_SHA1][$this->params['src']] = false; return $status; // nothing to do } else { $status->fatal( 'backend-fail-notexists', $this->params['src'] ); return $status; } } elseif ( $srcExists === FileBackend::EXISTENCE_ERROR ) { $status->fatal( 'backend-fail-stat', $this->params['src'] ); return $status; } // Update file existence predicates since the operation is expected to be allowed to run $predicates[self::ASSUMED_EXISTS][$this->params['src']] = false; $predicates[self::ASSUMED_SIZE][$this->params['src']] = false; $predicates[self::ASSUMED_SHA1][$this->params['src']] = false; return $status; // safe to call attempt() } protected function doAttempt() { // Delete the source file return $this->backend->deleteInternal( $this->setFlags( $this->params ) ); } public function storagePathsChanged() { return [ $this->params['src'] ]; } }