vube / php-filesystem
PHP classes for working with files and the file system
Installs: 21 793
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 8
Forks: 2
Open Issues: 0
Requires
- php: >=5.3.2
Requires (Dev)
- mikey179/vfsstream: ~1.4.0
- phpunit/phpunit: 4.3.*@stable
- satooshi/php-coveralls: dev-master
README
PHP classes for working with files and the file system
Features
- Safely install files on network mounted drives
- Atomic file installs; 100% uptime on production systems
- Atomic symlink modifications; 100% uptime on production systems
Installation
Load php-filesystem into your project by adding the following lines to your composer.json
{ "require": { "vube/php-filesystem": ">=0.1" } }
Example Usage
Install a directory
// Explicitly create a directory. // ALL parent dirs we create will share mode 0775 as modified by your umask $installer = new Vube\FileSystem\Installer(); $installer->installDir('/path/to/some/dir', 0775);
Install files safely and atomically
// Install files into /existing-dir // // When installing into subdirs, we create all dirs needed, // the mode is set by your umask. // // File installs are network-safe, providing 100% uptime // on production systems. $installer = new Vube\FileSystem\Installer(); $installer->installFile('file1', '/existing-dir/file1'); $installer->installFile('file2', '/existing-dir/new-dirs-we-create/with/subdirs/file2');
Create/overwrite symlinks atomically
// Create or overwrite /path/to/symlink // // If it already exists, it is atomically updated. $installer = new Vube\FileSystem\Installer(); $installer->symlink('/path/to/actual', '/path/to/symlink');
Easily diff files
// Compare file1 and file2; are they different? $differ = new Vube\FileSystem\FileDiffer(); if($differ->isDiff('file1', 'file2')) echo "These files are different.\n";
Easily zip files
// Gzip source.txt and save the result in destination.gz $zipper = new Vube\FileSystem\Gzip(); $zipper->zip('source.txt', 'destination.gz');
Dependencies
- PHP 5.3.2+
- Composer