[Filesystem] toIterable() in favor of toIterator()

This commit is contained in:
Roland Franssen 2017-11-11 21:57:50 +01:00 committed by Fabien Potencier
parent 23ab29f4c7
commit 36462d678b

View File

@ -90,7 +90,7 @@ class Filesystem
*/ */
public function mkdir($dirs, $mode = 0777) public function mkdir($dirs, $mode = 0777)
{ {
foreach ($this->toIterator($dirs) as $dir) { foreach ($this->toIterable($dirs) as $dir) {
if (is_dir($dir)) { if (is_dir($dir)) {
continue; continue;
} }
@ -119,7 +119,7 @@ class Filesystem
{ {
$maxPathLength = PHP_MAXPATHLEN - 2; $maxPathLength = PHP_MAXPATHLEN - 2;
foreach ($this->toIterator($files) as $file) { foreach ($this->toIterable($files) as $file) {
if (strlen($file) > $maxPathLength) { if (strlen($file) > $maxPathLength) {
throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file); throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file);
} }
@ -143,7 +143,7 @@ class Filesystem
*/ */
public function touch($files, $time = null, $atime = null) public function touch($files, $time = null, $atime = null)
{ {
foreach ($this->toIterator($files) as $file) { foreach ($this->toIterable($files) as $file) {
$touch = $time ? @touch($file, $time, $atime) : @touch($file); $touch = $time ? @touch($file, $time, $atime) : @touch($file);
if (true !== $touch) { if (true !== $touch) {
throw new IOException(sprintf('Failed to touch "%s".', $file), 0, null, $file); throw new IOException(sprintf('Failed to touch "%s".', $file), 0, null, $file);
@ -199,7 +199,7 @@ class Filesystem
*/ */
public function chmod($files, $mode, $umask = 0000, $recursive = false) public function chmod($files, $mode, $umask = 0000, $recursive = false)
{ {
foreach ($this->toIterator($files) as $file) { foreach ($this->toIterable($files) as $file) {
if (true !== @chmod($file, $mode & ~$umask)) { if (true !== @chmod($file, $mode & ~$umask)) {
throw new IOException(sprintf('Failed to chmod file "%s".', $file), 0, null, $file); throw new IOException(sprintf('Failed to chmod file "%s".', $file), 0, null, $file);
} }
@ -220,7 +220,7 @@ class Filesystem
*/ */
public function chown($files, $user, $recursive = false) public function chown($files, $user, $recursive = false)
{ {
foreach ($this->toIterator($files) as $file) { foreach ($this->toIterable($files) as $file) {
if ($recursive && is_dir($file) && !is_link($file)) { if ($recursive && is_dir($file) && !is_link($file)) {
$this->chown(new \FilesystemIterator($file), $user, true); $this->chown(new \FilesystemIterator($file), $user, true);
} }
@ -247,7 +247,7 @@ class Filesystem
*/ */
public function chgrp($files, $group, $recursive = false) public function chgrp($files, $group, $recursive = false)
{ {
foreach ($this->toIterator($files) as $file) { foreach ($this->toIterable($files) as $file) {
if ($recursive && is_dir($file) && !is_link($file)) { if ($recursive && is_dir($file) && !is_link($file)) {
$this->chgrp(new \FilesystemIterator($file), $group, true); $this->chgrp(new \FilesystemIterator($file), $group, true);
} }
@ -369,7 +369,7 @@ class Filesystem
throw new FileNotFoundException(sprintf('Origin file "%s" is not a file', $originFile)); throw new FileNotFoundException(sprintf('Origin file "%s" is not a file', $originFile));
} }
foreach ($this->toIterator($targetFiles) as $targetFile) { foreach ($this->toIterable($targetFiles) as $targetFile) {
if (is_file($targetFile)) { if (is_file($targetFile)) {
if (fileinode($originFile) === fileinode($targetFile)) { if (fileinode($originFile) === fileinode($targetFile)) {
continue; continue;
@ -722,15 +722,11 @@ class Filesystem
/** /**
* @param mixed $files * @param mixed $files
* *
* @return \Traversable * @return array|\Traversable
*/ */
private function toIterator($files) private function toIterable($files)
{ {
if (!$files instanceof \Traversable) { return is_array($files) || $files instanceof \Traversable ? $files : array($files);
$files = new \ArrayObject(is_array($files) ? $files : array($files));
}
return $files;
} }
/** /**