Automattic\WooCommerce\Internal\Admin\Logging\FileV2
File::rotate
Rename this file with an incremented rotation number.
Method of the class: File{}
No Hooks.
Returns
true|false. True if the file was successfully rotated.
Usage
$File = new File(); $File->rotate(): bool;
File::rotate() File::rotate code WC 10.3.3
public function rotate(): bool {
if ( ! $this->is_writable() ) {
return false;
}
$created = 0;
if ( $this->has_standard_filename() ) {
$created = $this->get_created_timestamp();
}
if ( is_null( $this->get_rotation() ) ) {
$new_rotation = 0;
} else {
$new_rotation = $this->get_rotation() + 1;
}
$new_file_id = static::generate_file_id( $this->get_source(), $new_rotation, $created );
$search = array( $this->get_file_id() );
$replace = array( $new_file_id );
if ( $this->has_standard_filename() ) {
$search[] = $this->get_hash();
$replace[] = static::generate_hash( $new_file_id );
}
$old_filename = $this->get_basename();
$new_filename = str_replace( $search, $replace, $old_filename );
$new_path = str_replace( $old_filename, $new_filename, $this->path );
try {
$filesystem = FilesystemUtil::get_wp_filesystem();
$moved = $filesystem->move( $this->path, $new_path, true );
} catch ( Exception $exception ) {
return false;
}
if ( ! $moved ) {
return false;
}
$this->path = $new_path;
$this->ingest_path();
return $this->is_readable();
}