fileExists( $this->params['src'], $predicates ) ) { if ( $this->getParam( 'ignoreMissingSource' ) ) { $this->doOperation = false; // no-op // Update file existence predicates (cache 404s) $predicates['exists'][$this->params['src']] = false; $predicates['sha1'][$this->params['src']] = false; return $status; // nothing to do } else { $status->fatal( 'backend-fail-notexists', $this->params['src'] ); return $status; } // Check if a file can be placed/changed at the source } elseif ( !$this->backend->isPathUsableInternal( $this->params['src'] ) ) { $status->fatal( 'backend-fail-usable', $this->params['src'] ); $status->fatal( 'backend-fail-delete', $this->params['src'] ); return $status; } // Update file existence predicates $predicates['exists'][$this->params['src']] = false; $predicates['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'] ]; } }