ILIAS  release_8 Revision v8.19-1-g4e8f2f9140c
All Data Structures Namespaces Files Functions Variables Modules Pages
Consumers.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
27 
33 class Consumers
34 {
38  private ?SrcBuilder $src_builder = null;
39 
43  public function __construct(
44  ConsumerFactory $consumer_factory,
45  ResourceBuilder $resource_builder,
46  CollectionBuilder $collection_builder,
47  ?SrcBuilder $src_builder = null
48  ) {
49  $this->consumer_factory = $consumer_factory;
50  $this->resource_builder = $resource_builder;
51  $this->collection_builder = $collection_builder;
52  $this->src_builder = $src_builder ?? new InlineSrcBuilder();
53  }
54 
55  public function download(ResourceIdentification $identification): DownloadConsumer
56  {
57  return $this->consumer_factory->download($this->resource_builder->get($identification));
58  }
59 
60  public function inline(ResourceIdentification $identification): InlineConsumer
61  {
62  return $this->consumer_factory->inline($this->resource_builder->get($identification));
63  }
64 
65  public function stream(ResourceIdentification $identification): FileStreamConsumer
66  {
67  return $this->consumer_factory->fileStream($this->resource_builder->get($identification));
68  }
69 
70  public function src(ResourceIdentification $identification): SrcConsumer
71  {
72  return $this->consumer_factory->src($this->resource_builder->get($identification), $this->src_builder);
73  }
74 
75  public function downloadCollection(
76  ResourceCollectionIdentification $identification,
77  ?string $zip_filename = null
79  return $this->downloadResources(
80  iterator_to_array($this->collection_builder->getResourceIds($identification)),
81  $zip_filename
82  );
83  }
84 
85  public function downloadResources(
86  array $identifications,
87  ?string $zip_filename = null
89  $resources = [];
90  foreach ($identifications as $rid) {
91  if (!$rid instanceof ResourceIdentification) {
92  throw new \InvalidArgumentException('Expected ResourceIdentification');
93  }
94  $resources[] = $this->resource_builder->get($rid);
95  }
96 
97  return $this->consumer_factory->downloadMultiple(
98  $resources,
99  $zip_filename
100  );
101  }
102 }
$resources
Definition: ltiservices.php:68
download(ResourceIdentification $identification)
Definition: Consumers.php:55
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
downloadResources(array $identifications, ?string $zip_filename=null)
Definition: Consumers.php:85
__construct(ConsumerFactory $consumer_factory, ResourceBuilder $resource_builder, CollectionBuilder $collection_builder, ?SrcBuilder $src_builder=null)
Consumers constructor.
Definition: Consumers.php:43
src(ResourceIdentification $identification)
Definition: Consumers.php:70
downloadCollection(ResourceCollectionIdentification $identification, ?string $zip_filename=null)
Definition: Consumers.php:75
stream(ResourceIdentification $identification)
Definition: Consumers.php:65