class WritableStreamBackupFile in Backup and Migrate 8.4
Class TempFile.
@package BackupMigrate\Core\File
A file object which represents an existing PHP stream that can be written to and read from.
Hierarchy
- class \BackupMigrate\Core\File\BackupFile implements BackupFileInterface
- class \BackupMigrate\Core\File\ReadableStreamBackupFile implements BackupFileReadableInterface
- class \BackupMigrate\Core\File\WritableStreamBackupFile implements BackupFileReadableInterface, BackupFileWritableInterface
- class \BackupMigrate\Core\File\ReadableStreamBackupFile implements BackupFileReadableInterface
Expanded class hierarchy of WritableStreamBackupFile
File
- lib/
backup_migrate_core/ src/ File/ WritableStreamBackupFile.php, line 16
Namespace
BackupMigrate\Core\FileView source
class WritableStreamBackupFile extends ReadableStreamBackupFile implements BackupFileReadableInterface, BackupFileWritableInterface {
/**
* @var bool Dirty bit. Has the file been written to since it was opened?
*/
protected $dirty = FALSE;
/**
* Constructor. Create a new file object from .
*/
function __construct($filepath) {
parent::__construct($filepath);
}
/**
* Open a file for reading or writing.
*
* @param bool $binary Is the file binary
*
* @throws \Exception
*/
function openForWrite($binary = FALSE) {
if (!$this
->isOpen()) {
$path = $this
->realpath();
// Check if the file can be read/written.
if (file_exists($path) && !is_writable($path) || !file_exists($path) && !is_writable(dirname($path))) {
// @TODO: Throw better exception
throw new BackupMigrateException('Cannot write to file: %path', [
'%path' => $path,
]);
}
// Open the file.
$mode = "w" . ($binary ? "b" : "");
$this->handle = fopen($path, $mode);
if (!$this->handle) {
throw new BackupMigrateException('Cannot open file: %path', [
'%path' => $path,
]);
}
}
}
/**
* Write a line to the file.
*
* @param string $data A string to write to the file.
*
* @throws \Exception
*/
function write($data) {
if (!$this
->isOpen()) {
$this
->openForWrite();
}
if ($this->handle) {
if (fwrite($this->handle, $data) === FALSE) {
throw new \Exception('Cannot write to file: ' . $this
->realpath());
}
else {
$this->dirty = TRUE;
}
}
else {
throw new \Exception('File not open for writing.');
}
}
/**
* Update the file time and size when the file is closed.
*/
function close() {
parent::close();
// If the file has been modified, update the stats from disk.
if ($this->dirty) {
$this
->_loadFileStats();
$this->dirty = FALSE;
}
}
/**
* A shorthand function to open the file, write the given contents and close
* the file. Used for small amounts of data that can fit in memory.
*
* @param $data
*/
public function writeAll($data) {
$this
->openForWrite();
$this
->write($data);
$this
->close();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BackupFile:: |
protected | property | The file extension(s). | |
BackupFile:: |
protected | property | The file info (size, timestamp, etc.). | |
BackupFile:: |
protected | property | The file's metadata. | |
BackupFile:: |
protected | property | The file name without extension. | |
BackupFile:: |
protected | property | The file path. | |
BackupFile:: |
public | function |
Get the full file extension. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get the last file extension. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get an array of file extensions. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get the full filename with extensions. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get a metadata value. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get all metadata. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Get the file name without extension. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Set the full filename with extensions. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Set a metadata value. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Set a metadata value. Overrides BackupFileInterface:: |
|
BackupFile:: |
public | function |
Set the file name without extension. Overrides BackupFileInterface:: |
|
ReadableStreamBackupFile:: |
protected | property | A file handle if it is open. | |
ReadableStreamBackupFile:: |
function | Is this file open for reading/writing. | ||
ReadableStreamBackupFile:: |
function |
Open a file for reading or writing. Overrides BackupFileReadableInterface:: |
||
ReadableStreamBackupFile:: |
public | function |
Read a line from the file. Overrides BackupFileReadableInterface:: |
|
ReadableStreamBackupFile:: |
function |
Read a line from the file. Overrides BackupFileReadableInterface:: |
||
ReadableStreamBackupFile:: |
public | function |
Read a single line from the file. Overrides BackupFileReadableInterface:: |
|
ReadableStreamBackupFile:: |
function |
Get the realpath of the file. Overrides BackupFileReadableInterface:: |
||
ReadableStreamBackupFile:: |
function |
Rewind the file handle to the start of the file. Overrides BackupFileReadableInterface:: |
||
ReadableStreamBackupFile:: |
public | function |
Move the file pointer forward a given number of bytes. Overrides BackupFileReadableInterface:: |
|
ReadableStreamBackupFile:: |
protected | function | Get info about the file and load them as metadata. | |
ReadableStreamBackupFile:: |
function | Destructor. | ||
WritableStreamBackupFile:: |
protected | property | ||
WritableStreamBackupFile:: |
function |
Update the file time and size when the file is closed. Overrides ReadableStreamBackupFile:: |
||
WritableStreamBackupFile:: |
function |
Open a file for reading or writing. Overrides BackupFileWritableInterface:: |
||
WritableStreamBackupFile:: |
function |
Write a line to the file. Overrides BackupFileWritableInterface:: |
||
WritableStreamBackupFile:: |
public | function |
A shorthand function to open the file, write the given contents and close
the file. Used for small amounts of data that can fit in memory. Overrides BackupFileWritableInterface:: |
|
WritableStreamBackupFile:: |
function |
Constructor. Create a new file object from . Overrides ReadableStreamBackupFile:: |