ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
FSLoader.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
30
42class FSLoader implements Loader
43{
44 use LoaderHelper;
45
46 public function __construct(
47 private RendererFactory $default_renderer_factory,
48 private RendererFactory $glyph_renderer_factory,
49 private RendererFactory $field_renderer_factory,
50 private RendererFactory $message_box_renderer_factory,
51 private RendererFactory $form_renderer_factory,
52 private RendererFactory $menu_renderer_factory,
53 ) {
54 }
55
59 public function getRendererFor(Component $component, array $contexts): ComponentRenderer
60 {
61 $context_names = $this->getContextNames($contexts);
62 $factory = $this->getRendererFactoryFor($component);
63 return $factory->getRendererInContext($component, $context_names);
64 }
65
69 public function getRendererFactoryFor(Component $component): RendererFactory
70 {
71 if ($component instanceof Glyph) {
72 return $this->glyph_renderer_factory;
73 }
74 if ($component instanceof FormInput) {
75 return $this->field_renderer_factory;
76 }
77 if ($component instanceof MessageBox) {
78 return $this->message_box_renderer_factory;
79 }
80 if ($component instanceof Form) {
81 return $this->form_renderer_factory;
82 }
83 if ($component instanceof Menu) {
84 return $this->menu_renderer_factory;
85 }
86
87 return $this->default_renderer_factory;
88 }
89}
This implements commonalities between all forms.
Definition: Form.php:34
Loads renderers for components from the file system.
Definition: FSLoader.php:43
getRendererFactoryFor(Component $component)
@inheritdocs
Definition: FSLoader.php:69
getRendererFor(Component $component, array $contexts)
@inheritdocs
Definition: FSLoader.php:59
__construct(private RendererFactory $default_renderer_factory, private RendererFactory $glyph_renderer_factory, private RendererFactory $field_renderer_factory, private RendererFactory $message_box_renderer_factory, private RendererFactory $form_renderer_factory, private RendererFactory $menu_renderer_factory,)
Definition: FSLoader.php:46
A component is the most general form of an entity in the UI.
Definition: Component.php:28
This describes inputs that can be used in forms.
Definition: FormInput.php:33
An entity that renders components to a string output.
Loads renderers for components.
Definition: Loader.php:30
This is the interface that components should use if they want to load specific renderers.