ILIAS  trunk Revision v12.0_alpha-1338-g8f7e531aa3c
FSLoader.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
31
43class FSLoader implements Loader
44{
45 use LoaderHelper;
46
47 public function __construct(
48 private RendererFactory $default_renderer_factory,
49 private RendererFactory $button_renderer_factory,
50 private RendererFactory $field_renderer_factory,
51 private RendererFactory $message_box_renderer_factory,
52 private RendererFactory $form_renderer_factory,
53 private RendererFactory $menu_renderer_factory,
54 ) {
55 }
56
60 public function getRendererFor(Component $component, array $contexts): ComponentRenderer
61 {
62 $context_names = $this->getContextNames($contexts);
63 $factory = $this->getRendererFactoryFor($component);
64 return $factory->getRendererInContext($component, $context_names);
65 }
66
70 public function getRendererFactoryFor(Component $component): RendererFactory
71 {
72 if ($component instanceof FormInput) {
73 return $this->field_renderer_factory;
74 }
75 if ($component instanceof MessageBox) {
76 return $this->message_box_renderer_factory;
77 }
78 if ($component instanceof Form) {
79 return $this->form_renderer_factory;
80 }
81 if ($component instanceof Menu) {
82 return $this->menu_renderer_factory;
83 }
84 if ($component instanceof Button) {
85 return $this->button_renderer_factory;
86 }
87 return $this->default_renderer_factory;
88 }
89}
This implements commonalities between standard and primary buttons.
Definition: Button.php:35
This implements commonalities between all forms.
Definition: Form.php:35
Loads renderers for components from the file system.
Definition: FSLoader.php:44
getRendererFactoryFor(Component $component)
@inheritdocs
Definition: FSLoader.php:70
getRendererFor(Component $component, array $contexts)
@inheritdocs
Definition: FSLoader.php:60
__construct(private RendererFactory $default_renderer_factory, private RendererFactory $button_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:47
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.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Bulky.php:21