Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add Filesystem component documentation#1439

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
weaverryan merged 2 commits intosymfony:masterfromromainneutron:FileSystem
Jun 20, 2012
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
239 changes: 239 additions & 0 deletionscomponents/filesystem.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
.. index::
single: Filesystem

The Filesystem Component
========================

The Filesystem components provides basic utilities for the filesystem.

Installation
------------

You can install the component in many different ways:

* Use the official Git repository (https://github.com/symfony/Filesystem);
* Install it via PEAR ( `pear.symfony.com/Filesystem`);
* Install it via Composer (`symfony/filesystem` on Packagist).

Usage
-----

The :class:`Symfony\\Component\\Filesystem\\Filesystem` class is the unique
endpoint for filesystem operations::

use Symfony\Component\Filesystem\Filesystem;

$fs = new Filesystem();

try {
$fs->mkdir('/tmp/random/dir/' . mt_rand());
} catch (\RuntimeException $e) {
echo "An error occured while creating your directory";
}

.. note::

Methods :method:`Symfony\\Component\\Filesystem\\Filesystem::mkdir`,
:method:`Symfony\\Component\\Filesystem\\Filesystem::chown`,
:method:`Symfony\\Component\\Filesystem\\Filesystem::chgrp`,
:method:`Symfony\\Component\\Filesystem\\Filesystem::chown`,
:method:`Symfony\\Component\\Filesystem\\Filesystem::remove` and
:method:`Symfony\\Component\\Filesystem\\Filesystem::touch` can receive a
string, an array or any object implementing :phpclass:`\\Traversable` as
target argument.


Mkdir
~~~~~

Mkdir creates directory. On posix filesystems, directories are created with a
default mode value `0777`. You can use the second argument to set your own mode.

$fs->mkdir('/tmp/photos', 0700);


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.


Exists
~~~~~~

Exists checks the presence of all files or directories and return false if a
file is missing.

// this directory exists, return true
$fs->exists('/tmp/photos');

// rabbit.jpg exists, bottle.png does not exists, return false
$fs->exists(array('rabbit.jpg', 'bottle.png));


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Copy
~~~~

This method is used to copy files. If the target already exists, the file is
copied only if the source modification date is earlier than the target. This
behavior can be overridden by the third boolean argument::

// works only if image-ICC has been modified after image.jpg
$fs->copy('image-ICC.jpg', 'image.jpg');

// image.jpg will be overridden
$fs->copy('image-ICC.jpg', 'image.jpg', true);


Touch
~~~~~

Touch sets access and modification time to a file. The current time is used by
default. You can set your own with the second argument. The third argument is
the access time::

// set modification time to the current timestamp
$fs->touch('file.txt');
// set modification time 10 seconds in the future
$fs->touch('file.txt', time() + 10);
// set access time 10 seconds in the past
$fs->touch('file.txt', time(), time() - 10);


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Chown
~~~~~

Chown is used to change the owner of a file. The third argument is a boolean
recursive option::

// set the owner of the lolcat video to www-data
$fs->chown('lolcat.mp4', 'www-data');
// change the owner of the video directory recursively
$fs->chown('/video', 'www-data', true);


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Chgrp
~~~~~

Chgrp is used to change the group of a file. The third argument is a boolean
recursive option::

// set the group of the lolcat video to nginx
$fs->chgrp('lolcat.mp4', 'nginx');
// change the group of the video directory recursively
$fs->chgrp('/video', 'nginx', true);


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Chmod
~~~~~

Chmod is used to change the mode of a file. The third argument is a boolean
recursive option::

// set the mode of the video to 0600
$fs->chmod('video.ogg', 0600);
// change the mod of the src directory recursively
$fs->chmod('src', 0700, true);


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Remove
~~~~~~

Remove let's you remove files, symlink, directories easily::

$fs->remove(array('symlink', '/path/to/directory', 'activity.log'));


.. note::

You can pass an array or any :phpclass:`\\Traversable` object as the first
argument.

Rename
~~~~~~

Rename is used to rename file and directories::

//rename a file
$fs->rename('/tmp/processed_video.ogg', '/path/to/store/video_647.ogg');
//rename a directory
$fs->rename('/tmp/files', '/path/to/store/files');

symlink
~~~~~~~

Create a symbolic link from target to destination. If the filesystem does not
support symbolic links, a third boolean argument is available::

// create a symbolic link
$fs->symlink('/path/to/source', '/path/to/destination');
// duplicate the source directory if the filesystem does not support symbolic links
$fs->symlink('/path/to/source', '/path/to/destination', true);

makePathRelative
~~~~~~~~~~~~~~~~

Return the relative path of a directory given another one::

// returns '../'
$fs->makePathRelative('/var/lib/symfony/src/Symfony/', '/var/lib/symfony/src/Symfony/Component');
// returns 'videos'
$fs->makePathRelative('/tmp', '/tmp/videos');

mirror
~~~~~~

Mirrors a directory::

$fs->mirror('/path/to/source', '/path/to/target');

isAbsolutePath
~~~~~~~~~~~~~~

isAbsolutePath returns true if the given path is absolute, false otherwise::

// return true
$fs->isAbsolutePath('/tmp');
// return true
$fs->isAbsolutePath('c:\\Windows');
// return false
$fs->isAbsolutePath('tmp');
// return false
$fs->isAbsolutePath('../dir');

Error Handling
--------------

Whenever something wrong happends, a :phpclass:`\\RuntimeException` is thrown.


.. note::

Prior to version 2.1, :method:`Symfony\\Component\\Filesystem\\Filesystem::mkdir`
was returning a boolean and did not throw exceptions. As of 2.1, a
:phpclass:`\\RuntimeException` is thrown if a directory creation fails.
1 change: 1 addition & 0 deletionscomponents/index.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,6 +10,7 @@ The Components
dom_crawler
dependency_injection/index
event_dispatcher/index
filesystem
finder
http_foundation/index
locale
Expand Down
4 changes: 4 additions & 0 deletionscomponents/map.rst.inc
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,6 +29,10 @@

* :doc:`/components/dom_crawler`

* **The Filesystem Component**

* :doc:`/components/filesystem`

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

There's also anindex.rst file in this same directory, which also needs to be updated (map is used for the visual page, but index is used to calculate "where" the pages are behind the scenes). Make sure that the location of the filesystem component is the same in both :)

* **The Finder Component**

* :doc:`/components/finder`
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp