/** * {@inheritdoc} */ public function listKeys($prefix = '') { $dirs = []; $keys = []; foreach ($this->adapter->listContents() as $content) { if (empty($prefix) || 0 === strpos($content['path'], $prefix)) { if ('dir' === $content['type']) { $dirs[] = $content['path']; } else { $keys[] = $content['path']; } } } return ['keys' => $keys, 'dirs' => $dirs]; }
public function it_should_cache_contents_listings() { $this->cache->isComplete($dirname = 'dirname', $recursive = true)->willReturn(false); $response = [['path' => 'path.txt']]; $this->adapter->listContents($dirname, $recursive)->willReturn($response); $this->cache->storeContents($dirname, $response, $recursive)->shouldBeCalled(); $this->listContents($dirname, $recursive)->shouldBe($response); }
/** * List the filesystem contents. * * @param string $directory * @param bool $recursive * * @return array contents */ public function listContents($directory = '', $recursive = false) { $directory = Util::normalizePath($directory); if ($this->cache->isComplete($directory, $recursive)) { return $this->cache->listContents($directory, $recursive); } $contents = $this->adapter->listContents($directory, $recursive); return $this->cache->storeContents($directory, $contents, $recursive); }
/** * {@inheritdoc} */ public function listContents($directory = '', $recursive = false) { if ($this->cache->isComplete($directory, $recursive)) { return $this->cache->listContents($directory, $recursive); } $result = $this->adapter->listContents($directory, $recursive); if ($result) { $this->cache->storeContents($directory, $result, $recursive); } return $result; }
/** * {@inheritDoc} */ public function listContents($directory = '', $recursive = false) { if ($directory) { $raw = $directory; $directory = $this->convertToPath($raw); $this->guardNoInvalidUuid($raw, $directory); } else { $directory = $this->uploadPath; } $this->guardInUploadPath($directory); return $this->adapter->listContents($directory, $recursive); }
/** * Get the cached item. * * @param string $path The file path. * * @return array|false|mixed|void */ private function getCached($path) { $key = $this->getCacheKey($path); if ($this->cache->contains($key)) { return $this->cache->fetch($key); } $metadata['metadata'] = $this->adapter->getMetadata($path); if ($metadata['metadata']['type'] === 'dir') { $metadata['contents'] = $this->adapter->listContents($path); } $this->cache->save($key, $metadata, $this->lifeTime); return $metadata; }
/** * {@inheritdoc} */ public function listContents($directory = '', $recursive = false) { $tmpResult = $this->mainAdapter->listContents($directory, $recursive); $inverseRef = []; foreach ($tmpResult as $index => $mainContent) { $inverseRef[$mainContent['path']] = $index; } $fallbackContents = $this->fallback->listContents($directory, $recursive); foreach ($fallbackContents as $fallbackContent) { if (!isset($inverseRef[$fallbackContent['path']])) { $tmpResult[] = $fallbackContent; } } return $tmpResult; }
/** * List the filesystem contents. * * @param string $directory * @param bool $recursive * * @return array contents */ public function listContents($directory = '', $recursive = false) { $directory = Util::normalizePath($directory); $contents = $this->adapter->listContents($directory, $recursive); $mapper = function ($entry) use($directory, $recursive) { $entry = $entry + Util::pathinfo($entry['path']); if (!empty($directory) && strpos($entry['path'], $directory) === false) { return false; } if ($recursive === false && Util::dirname($entry['path']) !== $directory) { return false; } return $entry; }; return array_values(array_filter(array_map($mapper, $contents))); }
/** * {@inheritdoc} */ public function listContents($directory = '', $recursive = false) { $contents = $this->adapter->listContents($this->getPath($directory), $recursive); $root = ltrim($this->root, '/'); return array_map(function ($file) use($root) { $file['path'] = Path::makeRelative($file['path'], $root); if (array_key_exists('dirname', $file)) { $file['dirname'] = Path::makeRelative($file['dirname'], $root); } return $file; }, array_filter($contents, function ($file) use($root) { if (0 !== strpos($file['path'], $root)) { return false; } return true; })); }
function it_lists_keys(AdapterInterface $adapter) { $adapter->listContents()->willReturn([['path' => 'folder', 'timestamp' => 1457104978, 'size' => 22, 'type' => 'dir']]); $this->listKeys()->shouldReturn(['keys' => [], 'dirs' => ['folder']]); }
/** * {@inheritdoc} */ public function listContents($directory = '', $recursive = false) { return $this->adapter->listContents($directory, $recursive); }
/** * Get content from a dir. * * @param string $directory * @param string $typ * @param bool $recursive * * @return array */ private function getContents(string $directory, string $typ, bool $recursive = false) : array { $contents = $this->driver->listContents($directory, $recursive); return $this->filterContentsByType($contents, $typ); }