Run command in console:
php composer.phar require max-s-lab/php-local-filesystem
or add next line to the require
section of your composer.json
file:
"max-s-lab/php-local-filesystem": "^1.0"
"max-s-lab/php-local-filesystem": "^2.0"
You just need to set the root directory and start using:
use MaxSLab\Filesystem\Local\LocalFilesystem;
$filesystem = new LocalFilesystem('/var/www/some-directory');
You can also set default permissions for nested directories and files.
Note: permissions MUST be set in octal mode.
Example:
$filesystem = new LocalFilesystem('/var/www/some-directory', [
'defaultPermissions' => [
'directory' => 0755,
'file' => 0644,
],
]);
Writing content to a file with the creation of a file and a directory for it.
Example:
$filesystem->writeToFile('file.txt', 'Test');
This method also allows you to set permissions for directories and file:
$filesystem->writeToFile('file.txt', 'Test', [
'directoryPermissions' => 0777,
'filePermissions' => 0666,
]);
You can also use this method to write a stream to a file.
To do this, simply replace 'Test'
with a stream.
See file_put_contents for more information about flags
Example:
$filesystem->deleteFile('file.txt');
Copying a file with creating a directory for it.
Example:
$filesystem->copyFile('file.txt', 'directory/file.txt');
This method also allows you to set permissions for directories and file:
$filesystem->copyFile('file.txt', 'directory/file.txt', [
'directoryPermissions' => 0777,
'filePermissions' => 0666,
]);
Moving a file with creating a directory for it.
Example:
$filesystem->moveFile('file.txt', 'directory/file.txt');
This method also allows you to set permissions for directories and file:
$filesystem->moveFile('file.txt', 'directory/file.txt', [
'directoryPermissions' => 0777,
'filePermissions' => 0666,
]);
This method will return the contents of the file as a string.
Example:
$result = $filesystem->readFile('file.txt');
See file_get_contents for more information.
This method will return the contents of the file as a stream.
Example:
$result = $filesystem->readFileAsStream('file.txt');
See fopen for more information.
Example:
$result = $filesystem->getFileSize('file.txt');
See filesize for more information.
Example:
$result = $filesystem->getFileMimeType('file.txt');
See mime_content_type for more information.
Example:
$result = $filesystem->getFileLastModifiedTime('file.txt');
See filemtime for more information.
This method creates a directory recursively.
Example:
$filesystem->createDirectory('directory');
It also allows you to set permissions for the created directories:
$filesystem->createDirectory('directory', 0777);
Recursively deleting a directory along with the contained files and directories.
Example:
$filesystem->deleteDirectory('directory');
Preparing full path by relative path.
Example:
// File
$result = $filesystem->prepareFullPath('file.txt');
// Directory
$result = $filesystem->prepareFullPath('directory');
Example:
$result = filesystem->listPathnames('*');
See glob for more information.
Example:
// File
$filesystem->setPermissions('file.txt', 0644);
// Directory
$filesystem->setPermissions('directory', 0755);
See chmod for more information.
Example:
// File
$result = $filesystem->getPermissions('file.txt');
// Directory
$result = $filesystem->getPermissions('directory');
See fileperms for more information.
Example:
$result = $filesystem->fileExists('file.txt');
See is_file for more information.
Example:
$result = $filesystem->directoryExists('directory');
See is_dir for more information.