ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ListWith.php
Go to the documentation of this file.
1<?php
2
4
6{
12 public function getMethod()
13 {
14 return 'listWith';
15 }
16
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
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}
An exception for terminatinating execution or to throw for unit testing.
handle(array $keys=[], $directory='', $recursive=false)
List contents with metadata.
Definition: ListWith.php:26
getMethod()
Get the method name.
Definition: ListWith.php:12
getMetadataByName(array $object, $key)
Get a meta-data value by key name.
Definition: ListWith.php:48
$key
Definition: croninfo.php:18
$index
Definition: metadata.php:60
$keys