ILIAS  release_8 Revision v8.19-1-g4e8f2f9140c
All Data Structures Namespaces Files Functions Variables Modules Pages
Services.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\ResourceStorage;
22 
41 
47 class Services
48 {
49  protected \ILIAS\ResourceStorage\Manager\Manager $manager;
50  protected \ILIAS\ResourceStorage\Consumer\Consumers $consumers;
51  protected \ILIAS\ResourceStorage\Collection\Collections $collections;
52  protected \ILIAS\ResourceStorage\Preloader\RepositoryPreloader $preloader;
53 
58  public function __construct(
59  StorageHandlerFactory $storage_handler_factory,
60  Repositories $repositories,
61  LockHandler $lock_handler,
62  FileNamePolicy $file_name_policy,
63  StreamAccess $stream_access,
64  SrcBuilder $src_builder = null,
65  RepositoryPreloader $preloader = null
66  ) {
67  $src_builder ??= new InlineSrcBuilder();
68  $stream_info_factory = new TokenFactory(
69  $storage_handler_factory->getBaseDir()
70  );
71  $file_name_policy_stack = new FileNamePolicyStack();
72  $file_name_policy_stack->addPolicy($file_name_policy);
73  $resource_builder = new ResourceBuilder(
74  $storage_handler_factory,
75  $repositories,
76  $lock_handler,
77  $stream_access,
78  $file_name_policy_stack
79  );
80  $collection_builder = new CollectionBuilder(
81  $repositories->getCollectionRepository(),
83  $lock_handler
84  );
85  $this->preloader = $preloader ?? new StandardRepositoryPreloader($repositories);
86  $this->manager = new Manager(
87  $resource_builder,
88  $collection_builder,
89  $this->preloader
90  );
91  $this->consumers = new Consumers(
92  new ConsumerFactory(
93  $stream_access,
94  $file_name_policy_stack
95  ),
96  $resource_builder,
97  $collection_builder,
98  $src_builder
99  );
100  $this->collections = new Collections(
101  $resource_builder,
102  $collection_builder,
103  $this->preloader
104  );
105  }
106 
107  public function manage(): Manager
108  {
109  return $this->manager;
110  }
111 
112  public function consume(): Consumers
113  {
114  return $this->consumers;
115  }
116 
117  public function collection(): Collections
118  {
119  return $this->collections;
120  }
121 
122  public function preload(array $identification_strings): void
123  {
124  $this->preloader->preload($identification_strings);
125  }
126 }
__construct(StorageHandlerFactory $storage_handler_factory, Repositories $repositories, LockHandler $lock_handler, FileNamePolicy $file_name_policy, StreamAccess $stream_access, SrcBuilder $src_builder=null, RepositoryPreloader $preloader=null)
Services constructor.
Definition: Services.php:58
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS ResourceStorage Collection Collections $collections
Definition: Services.php:51
ILIAS ResourceStorage Manager Manager $manager
Definition: Services.php:49
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS ResourceStorage Consumer Consumers $consumers
Definition: Services.php:50
ILIAS ResourceStorage Preloader RepositoryPreloader $preloader
Definition: Services.php:52
Class StorageManager.
Definition: Manager.php:39
preload(array $identification_strings)
Definition: Services.php:122