ILIAS  trunk Revision v11.0_alpha-1843-g9e1fad99175
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Chatroom.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS;
22 
23 class Chatroom implements Component\Component
24 {
25  public function init(
26  array | \ArrayAccess &$define,
27  array | \ArrayAccess &$implement,
28  array | \ArrayAccess &$use,
29  array | \ArrayAccess &$contribute,
30  array | \ArrayAccess &$seek,
31  array | \ArrayAccess &$provide,
32  array | \ArrayAccess &$pull,
33  array | \ArrayAccess &$internal,
34  ): void {
35  $contribute[\ILIAS\Setup\Agent::class] = static fn() => new \ilChatroomSetupAgent($pull[\ILIAS\Refinery\Factory::class]);
36 
37  $files = [
38  '../chat/node_modules/socket.io-client/dist/socket.io.min.js',
39  'js/dist/Chatroom.min.js',
40  ];
41 
42  $type = ['js' => Component\Resource\ComponentJS::class, 'css' => Component\Resource\ComponentCSS::class];
43 
44  foreach ($files as $file) {
45  $class = $type[substr($file, strrpos($file, '.') + 1)];
46  if (file_exists(__DIR__ . '/resources/' . $file)) {
47  $contribute[Component\Resource\PublicAsset::class] = fn() => new $class($this, $file);
48  }
49  }
50  }
51 }
Interface Observer Contains several chained tasks and infos about them.
init(array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
Definition: Chatroom.php:25