/var/www/vhosts/ihelp.ro/httpdocs/vendor/league/flysystem/src/Util
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/league/flysystem/src/Util/ContentListingFormatter.php (2588B)
directory = rtrim($directory, '/');
$this->recursive = $recursive;
$this->caseSensitive = $caseSensitive;
}
/**
* Format contents listing.
*
* @param array $listing
*
* @return array
*/
public function formatListing(array $listing)
{
$listing = array_filter(array_map([$this, 'addPathInfo'], $listing), [$this, 'isEntryOutOfScope']);
return $this->sortListing(array_values($listing));
}
private function addPathInfo(array $entry)
{
return $entry + Util::pathinfo($entry['path']);
}
/**
* Determine if the entry is out of scope.
*
* @param array $entry
*
* @return bool
*/
private function isEntryOutOfScope(array $entry)
{
if (empty($entry['path']) && $entry['path'] !== '0') {
return false;
}
if ($this->recursive) {
return $this->residesInDirectory($entry);
}
return $this->isDirectChild($entry);
}
/**
* Check if the entry resides within the parent directory.
*
* @param array $entry
*
* @return bool
*/
private function residesInDirectory(array $entry)
{
if ($this->directory === '') {
return true;
}
return $this->caseSensitive
? strpos($entry['path'], $this->directory . '/') === 0
: stripos($entry['path'], $this->directory . '/') === 0;
}
/**
* Check if the entry is a direct child of the directory.
*
* @param array $entry
*
* @return bool
*/
private function isDirectChild(array $entry)
{
return $this->caseSensitive
? $entry['dirname'] === $this->directory
: strcasecmp($this->directory, $entry['dirname']) === 0;
}
/**
* @param array $listing
*
* @return array
*/
private function sortListing(array $listing)
{
usort($listing, function ($a, $b) {
return strcasecmp($a['path'], $b['path']);
});
return $listing;
}
}