This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Filesystem
Nicolas Grekas 3aa30005f0 bug #17195 bug #14246 [Filesystem] dumpFile() non atomic (Hidde Boomsma)
This PR was merged into the 2.3 branch.

Discussion
----------

bug #14246 [Filesystem] dumpFile() non atomic

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #14246
| License       | MIT
| Doc PR        | none

Remove race condition where `dumpFile` has written the resulting file but has not given access yet.

Commits
-------

e4015d5 bug #14246 [Filesystem] dumpFile() non atomic
2015-12-31 10:05:40 +01:00
..
Exception remove api tags from code 2015-09-28 19:11:22 +02:00
Tests [Filesystem] fix tests on 2.3 2015-12-19 12:15:11 +01:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
CHANGELOG.md Fix #8205 : Deprecate file mode update when calling dumpFile 2014-03-26 08:33:01 +01:00
composer.json added the new Composer exclude-from-classmap option 2015-10-30 12:48:51 -07:00
Filesystem.php bug #17195 bug #14246 [Filesystem] dumpFile() non atomic (Hidde Boomsma) 2015-12-31 10:05:40 +01:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
phpunit.xml.dist Add missing exclusions from phpunit.xml.dist 2015-11-18 09:19:46 +01:00
README.md renamed composer.phar to composer to be consistent with the Symfony docs 2015-02-08 08:41:14 +01:00

Filesystem Component

Filesystem provides basic utility to manipulate the file system:

<?php

use Symfony\Component\Filesystem\Filesystem;

$filesystem = new Filesystem();

$filesystem->copy($originFile, $targetFile, $override = false);

$filesystem->mkdir($dirs, $mode = 0777);

$filesystem->touch($files, $time = null, $atime = null);

$filesystem->remove($files);

$filesystem->exists($files);

$filesystem->chmod($files, $mode, $umask = 0000, $recursive = false);

$filesystem->chown($files, $user, $recursive = false);

$filesystem->chgrp($files, $group, $recursive = false);

$filesystem->rename($origin, $target);

$filesystem->symlink($originDir, $targetDir, $copyOnWindows = false);

$filesystem->makePathRelative($endPath, $startPath);

$filesystem->mirror($originDir, $targetDir, \Traversable $iterator = null, $options = array());

$filesystem->isAbsolutePath($file);

Resources

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/Filesystem/
$ composer install
$ phpunit