浏览代码

moved the Filesystem class form FrameworBundle to HttpKernel (refactored it slightly)

Fabien Potencier 14 年之前
父节点
当前提交
124f1d8e44

+ 1 - 1
src/Symfony/Bundle/AsseticBundle/Tests/FunctionalTest.php

@@ -13,7 +13,7 @@ namespace Symfony\Bundle\AsseticBundle\Tests;
 
 use Symfony\Component\DomCrawler\Crawler;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 
 /**
  * @group functional

+ 1 - 1
src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php

@@ -16,7 +16,7 @@ use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Output\Output;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 use Doctrine\DBAL\Connection;
 
 /**

+ 1 - 1
src/Symfony/Bundle/DoctrineBundle/Command/DropDatabaseDoctrineCommand.php

@@ -16,7 +16,7 @@ use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Output\Output;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 use Doctrine\DBAL\Connection;
 
 /**

+ 1 - 1
src/Symfony/Bundle/DoctrineBundle/Command/LoadDataFixturesDoctrineCommand.php

@@ -17,7 +17,7 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Output\Output;
 use Symfony\Component\Finder\Finder;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 use Symfony\Bundle\DoctrineAbstractBundle\Common\DataFixtures\Loader as DataFixturesLoader;
 use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
 use Doctrine\Common\DataFixtures\Purger\ORMPurger;

+ 1 - 1
src/Symfony/Bundle/DoctrineMongoDBBundle/Command/LoadDataFixturesDoctrineODMCommand.php

@@ -17,7 +17,7 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Output\Output;
 use Symfony\Component\Finder\Finder;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 use Symfony\Bundle\DoctrineAbstractBundle\Common\DataFixtures\Loader as DataFixturesLoader;
 use Doctrine\Common\DataFixtures\Executor\MongoDBExecutor;
 use Doctrine\Common\DataFixtures\Purger\MongoDBPurger;

+ 2 - 2
src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php

@@ -52,7 +52,7 @@ class AssetsInstallCommand extends Command
         $filesystem = $this->container->get('filesystem');
 
         // Create the bundles directory otherwise symlink will fail.
-        $filesystem->mkdirs($input->getArgument('target').'/bundles/', 0777);
+        $filesystem->mkdir($input->getArgument('target').'/bundles/', 0777);
 
         foreach ($this->container->get('kernel')->getBundles() as $bundle) {
             if (is_dir($originDir = $bundle->getPath().'/Resources/public')) {
@@ -65,7 +65,7 @@ class AssetsInstallCommand extends Command
                 if ($input->getOption('symlink')) {
                     $filesystem->symlink($originDir, $targetDir);
                 } else {
-                    $filesystem->mkdirs($targetDir, 0777);
+                    $filesystem->mkdir($targetDir, 0777);
                     $filesystem->mirror($originDir, $targetDir);
                 }
             }

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php

@@ -132,7 +132,7 @@ namespace $namespace
     }
 }
 EOF;
-        $this->container->get('filesystem')->mkdirs($warmupDir);
+        $this->container->get('filesystem')->mkdir($warmupDir);
         file_put_contents($file = $warmupDir.'/kernel.tmp', $code);
         require_once $file;
         @unlink($file);

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml

@@ -9,7 +9,7 @@
         <parameter key="http_kernel.class">Symfony\Bundle\FrameworkBundle\HttpKernel</parameter>
         <parameter key="error_handler.class">Symfony\Component\HttpKernel\Debug\ErrorHandler</parameter>
         <parameter key="error_handler.level">null</parameter>
-        <parameter key="filesystem.class">Symfony\Bundle\FrameworkBundle\Util\Filesystem</parameter>
+        <parameter key="filesystem.class">Symfony\Component\HttpKernel\Util\Filesystem</parameter>
         <parameter key="cache_warmer.class">Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate</parameter>
         <parameter key="cache_warmer.autoloader_map.class">Symfony\Bundle\FrameworkBundle\CacheWarmer\ClassMapCacheWarmer</parameter>
         <parameter key="file_locator.class">Symfony\Component\HttpKernel\Config\FileLocator</parameter>

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Tests/Kernel.php

@@ -12,7 +12,7 @@
 namespace Symfony\Bundle\FrameworkBundle\Tests;
 
 use Symfony\Component\HttpKernel\Kernel as BaseKernel;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 use Symfony\Component\ClassLoader\UniversalClassLoader;
 use Symfony\Component\Config\Loader\LoaderInterface;
 

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Tests/Util/MustacheTest.php

@@ -13,7 +13,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Util;
 
 use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
 use Symfony\Bundle\FrameworkBundle\Util\Mustache;
-use Symfony\Bundle\FrameworkBundle\Util\Filesystem;
+use Symfony\Component\HttpKernel\Util\Filesystem;
 
 class MustacheTest extends TestCase
 {

+ 0 - 224
src/Symfony/Bundle/FrameworkBundle/Util/Filesystem.php

@@ -1,224 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bundle\FrameworkBundle\Util;
-
-/**
- * Provides basic utility to manipulate the file system.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Filesystem
-{
-    /**
-     * Copies a file.
-     *
-     * This method only copies the file if the origin file is newer than the target file.
-     *
-     * By default, if the target already exists, it is not overridden.
-     *
-     * To override existing files, pass the "override" option.
-     *
-     * @param string $originFile  The original filename
-     * @param string $targetFile  The target filename
-     * @param array  $options     An array of options
-     */
-    public function copy($originFile, $targetFile, $options = array())
-    {
-        if (!array_key_exists('override', $options)) {
-            $options['override'] = false;
-        }
-
-        $this->mkdirs(dirname($targetFile));
-
-        $mostRecent = false;
-        if (file_exists($targetFile)) {
-            $statTarget = stat($targetFile);
-            $statOrigin = stat($originFile);
-            $mostRecent = $statOrigin['mtime'] > $statTarget['mtime'];
-        }
-
-        if ($options['override'] || !file_exists($targetFile) || $mostRecent) {
-            copy($originFile, $targetFile);
-        }
-    }
-
-    /**
-     * Creates a directory recursively.
-     *
-     * @param  string $path  The directory path
-     * @param  int    $mode  The directory mode
-     *
-     * @return Boolean true if the directory has been created, false otherwise
-     */
-    public function mkdirs($path, $mode = 0777)
-    {
-        if (is_dir($path)) {
-            return true;
-        }
-
-        return @mkdir($path, $mode, true);
-    }
-
-    /**
-     * Creates empty files.
-     *
-     * @param mixed $files  The filename, or an array of filenames
-     */
-    public function touch($files)
-    {
-        if (!is_array($files)) {
-            $files = array($files);
-        }
-
-        foreach ($files as $file) {
-            touch($file);
-        }
-    }
-
-    /**
-     * Removes files or directories.
-     *
-     * @param mixed $files A filename, an array of files, or a \Traversable instance to remove
-     */
-    public function remove($files)
-    {
-        if ($files instanceof \Traversable) {
-            $files = iterator_to_array($files);
-        } elseif (!is_array($files)) {
-            $files = array($files);
-        }
-
-        $files = array_reverse($files);
-        foreach ($files as $file) {
-            if (!file_exists($file)) {
-                continue;
-            }
-
-            if (is_dir($file) && !is_link($file)) {
-                $this->remove(new \FilesystemIterator($file));
-
-                rmdir($file);
-            } else {
-                unlink($file);
-            }
-        }
-    }
-
-    /**
-     * Change mode for an array of files or directories.
-     *
-     * @param array   $files  An array of files or directories
-     * @param integer $mode   The new mode
-     * @param integer $umask  The mode mask (octal)
-     */
-    public function chmod($files, $mode, $umask = 0000)
-    {
-        $currentUmask = umask();
-        umask($umask);
-
-        if (!is_array($files)) {
-            $files = array($files);
-        }
-
-        foreach ($files as $file) {
-            chmod($file, $mode);
-        }
-
-        umask($currentUmask);
-    }
-
-    /**
-     * Renames a file.
-     *
-     * @param string $origin  The origin filename
-     * @param string $target  The new filename
-     *
-     * @throws \RuntimeException When target file already exists
-     */
-    public function rename($origin, $target)
-    {
-        // we check that target does not exist
-        if (is_readable($target)) {
-            throw new \RuntimeException(sprintf('Cannot rename because the target "%" already exist.', $target));
-        }
-
-        rename($origin, $target);
-    }
-
-    /**
-     * Creates a symbolic link or copy a directory.
-     *
-     * @param string  $originDir      The origin directory path
-     * @param string  $targetDir      The symbolic link name
-     * @param Boolean $copyOnWindows  Whether to copy files if on windows
-     */
-    public function symlink($originDir, $targetDir, $copyOnWindows = false)
-    {
-        if (!function_exists('symlink') && $copyOnWindows) {
-            $this->mirror($originDir, $targetDir);
-
-            return;
-        }
-
-        $ok = false;
-        if (is_link($targetDir)) {
-            if (readlink($targetDir) != $originDir) {
-                unlink($targetDir);
-            } else {
-                $ok = true;
-            }
-        }
-
-        if (!$ok) {
-            symlink($originDir, $targetDir);
-        }
-    }
-
-    /**
-     * Mirrors a directory to another.
-     *
-     * @param string $originDir      The origin directory
-     * @param string $targetDir      The target directory
-     * @param \Traversable $iterator A Traversable instance
-     * @param array  $options        An array of options (see copy())
-     *
-     * @throws \RuntimeException When file type is unknown
-     */
-    public function mirror($originDir, $targetDir, \Traversable $iterator = null, $options = array())
-    {
-        if (null === $iterator) {
-            $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST);
-        }
-
-        if ('/' === substr($targetDir, -1) || '\\' === substr($targetDir, -1)) {
-            $targetDir = substr($targetDir, 0, -1);
-        }
-
-        if ('/' === substr($originDir, -1) || '\\' === substr($originDir, -1)) {
-            $originDir = substr($originDir, 0, -1);
-        }
-
-        foreach ($iterator as $file) {
-            $target = $targetDir.'/'.str_replace($originDir.DIRECTORY_SEPARATOR, '', $file->getPathname());
-
-            if (is_dir($file)) {
-                $this->mkdirs($target);
-            } else if (is_file($file)) {
-                $this->copy($file, $target, $options);
-            } else if (is_link($file)) {
-                $this->symlink($file, $target);
-            } else {
-                throw new \RuntimeException(sprintf('Unable to guess "%s" file type.', $file));
-            }
-        }
-    }
-}