for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\DirectoryCleanup;
use Carbon\Carbon;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Collection;
class DirectoryCleaner
{
/** @var \Illuminate\Filesystem\Filesystem */
protected $filesystem;
/** @var string */
protected $directory;
/**
* @param \Illuminate\Filesystem\Filesystem $filesystem
*/
public function __construct(Filesystem $filesystem)
$this->filesystem = $filesystem;
}
* @param string $directory
*
* @return $this
public function setDirectory(string $directory)
$this->directory = $directory;
return $this;
* @param int $minutes
* @return \Illuminate\Support\Collection
public function deleteFilesOlderThanMinutes(int $minutes) : Collection
$timeInPast = Carbon::now()->subMinutes($minutes);
$deletedFiles = collect($this->filesystem->files($this->directory))
->filter(function ($file) use ($timeInPast) {
$timeWhenFileWasModified = Carbon::createFromTimestamp(filemtime($file));
return $timeWhenFileWasModified->lt($timeInPast);
})
->each(function ($file) {
$this->filesystem->delete($file);
});
return $deletedFiles;