Extending / Filesystem Layer / Working with files
Note: You are currently reading the documentation for Bolt 3.7. Looking for the documentation for Bolt 5.2 instead?
Each file in the filesystem is an instance of an \Bolt\Filesystem\Handler\FileInterface
object.
Getting a file object¶
/** @var \Bolt\Filesystem\Handler\FileInterface $file */
$file = $filesystem->getFile($path);
Where:
Variable | Type | Description |
---|---|---|
$path |
string |
Relative path to the file |
Checking if a file exists¶
/** @var bool $exists */
$exists = $file->exists($path);
Variable | Type | Description |
---|---|---|
$path |
string |
The path to the file |
Getting a file's contents¶
Read the contents of a file into a variable.
$data = $file->read($path);
Where:
Variable | Type | Description |
---|---|---|
$path |
string |
Relative path to the file |
Create & updating files¶
The FilesystemInterface
gives two ways to persist data to a file on a
filesystem, ->write()
will create a file, and ->put()
will persist the data
to an existing file, or a new file if the requested target doesn' exist.
// Create a file or update if exists
$filesystem->put($path, $contents, $config = []);
// Write a new file.
$filesystem->write($path, $contents, $config = []);
Where:
Variable | Type | Description |
---|---|---|
$path |
string |
The target file |
$contents |
mixed |
Data to be written to the target file |
$config |
array |
Optional configuration array |
Note: The write()
method will
throw a `\Bolt\Filesystem\Exception\FileExistsException` if you attempt to
write to an existing file, use put()
in that circumstance.
Copy Files¶
Copies a file and its contents to another.
$filesystem->copy($origin, $target, $override = null)
Where:
Variable | Type | Description |
---|---|---|
$origin |
string |
The origin file |
$target |
string |
The target file |
override |
bool /null |
Whether to override an existing file |
true = always override the target | ||
false = never override the target | ||
null = only override the target if the source is newer |
Rename Files¶
Rename a file
$filesystem->rename($path, $newPath);
Where:
Variable | Type | Description |
---|---|---|
$path |
string |
Path to the existing file |
$newPath |
string |
The new path of the file |
Delete Files¶
Delete a file.
$filesystem->delete($path);
Where:
Variable | Type | Description |
---|---|---|
$path |
string |
The target file |
Note: The delete()
method will
throw a `\Bolt\Filesystem\Exception\FileNotFoundException` if you attempt to
delete a non-existing file, use exists()
to check its existance,
or try
/catch
if preferred.
Couldn't find what you were looking for? We are happy to help you in the forum, on Slack or on Github.