PluginProbe
WPIDE – File Manager & Code Editor / 3.5.9
WPIDE – File Manager & Code Editor v3.5.9
3.5.9 3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 3.3 All 55 releases
wpide / vendor / league / flysystem / src / Plugin / ListWith.php

ListWith.php in WPIDE – File Manager & Code Editor 3.5.9, at vendor/league/flysystem/src/Plugin/ListWith.php

61 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace League\Flysystem\Plugin;
4
5 class ListWith extends AbstractPlugin
6 {
7 /**
8 * Get the method name.
9 *
10 * @return string
11 */
12 public function getMethod()
13 {
14 return 'listWith';
15 }
16
17 /**
18 * List contents with metadata.
19 *
20 * @param string[] $keys
21 * @param string $directory
22 * @param bool $recursive
23 *
24 * @return array listing with metadata
25 */
26 public function handle(array $keys = [], $directory = '', $recursive = false)
27 {
28 $contents = $this->filesystem->listContents($directory, $recursive);
29
30 foreach ($contents as $index => $object) {
31 if ($object['type'] === 'file') {
32 $missingKeys = array_diff($keys, array_keys($object));
33 $contents[$index] = array_reduce($missingKeys, [$this, 'getMetadataByName'], $object);
34 }
35 }
36
37 return $contents;
38 }
39
40 /**
41 * Get a meta-data value by key name.
42 *
43 * @param array $object
44 * @param string $key
45 *
46 * @return array
47 */
48 protected function getMetadataByName(array $object, $key)
49 {
50 $method = 'get' . ucfirst($key);
51
52 if ( ! method_exists($this->filesystem, $method)) {
53 throw new \InvalidArgumentException('Could not get meta-data for key: ' . $key);
54 }
55
56 $object[$key] = $this->filesystem->{$method}($object['path']);
57
58 return $object;
59 }
60 }
61