Maslosoft Cli Shared API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
<?php
/**
* Created by PhpStorm.
* User: peter
* Date: 28.11.17
* Time: 11:13
*/
namespace Maslosoft\Cli\Shared;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Finder\SplFileInfo;
class FilesFinder extends Finder
{
public function sortByName($desc = false)
{
if ($desc)
{
$sortFunc = function ($a, $b) {
/* @var $a SplFileInfo */
/* @var $b SplFileInfo */
return strcmp($b->getRealpath() ?: $b->getPathname(), $a->getRealpath() ?: $a->getPathname());
};
return $this->sort($sortFunc);
}
return parent::sortByName();
}
public function sortByType($desc = false)
{
if ($desc)
{
$sortFunc = function ($a, $b) {
/* @var $a SplFileInfo */
/* @var $b SplFileInfo */
if ($a->isDir() && $b->isFile())
{
return 1;
} elseif ($a->isFile() && $b->isDir())
{
return -1;
}
return strcmp($b->getRealpath() ?: $b->getPathname(), $a->getRealpath() ?: $a->getPathname());
};
return $this->sort($sortFunc);
}
return parent::sortByType();
}
public function sortByAccessedTime($desc = false)
{
if ($desc)
{
$sortFunc = function ($a, $b) {
return $b->getATime() - $a->getATime();
};
return $this->sort($sortFunc);
}
return parent::sortByAccessedTime();
}
public function sortByChangedTime($desc = false)
{
if ($desc)
{
$sortFunc = function ($a, $b) {
return $b->getCTime() - $a->getCTime();
};
return $this->sort($sortFunc);
}
return parent::sortByChangedTime();
}
public function sortByModifiedTime($desc = false)
{
if ($desc)
{
$sortFunc = function ($a, $b) {
return $b->getMTime() - $a->getMTime();
};
return $this->sort($sortFunc);
}
return parent::sortByModifiedTime();
}
}
API documentation generated by ApiGen