[!!!][FEATURE] Introduce PSR-3 Logging
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Configuration / ConfigurationManagerInterface.php
1 <?php
2 declare(strict_types = 1);
3
4 namespace TYPO3\CMS\Extbase\Configuration;
5
6 /*
7 * This file is part of the TYPO3 CMS project.
8 *
9 * It is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License, either version 2
11 * of the License, or any later version.
12 *
13 * For the full copyright and license information, please read the
14 * LICENSE.txt file that was distributed with this source code.
15 *
16 * The TYPO3 project - inspiring people to share!
17 */
18
19 /**
20 * Class ConfigurationManagerInterface
21 * @internal only to be used within Extbase, not part of TYPO3 Core API.
22 */
23 interface ConfigurationManagerInterface extends \TYPO3\CMS\Core\SingletonInterface
24 {
25 const CONFIGURATION_TYPE_FRAMEWORK = 'Framework';
26 const CONFIGURATION_TYPE_SETTINGS = 'Settings';
27 const CONFIGURATION_TYPE_FULL_TYPOSCRIPT = 'FullTypoScript';
28
29 /**
30 * @param \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $contentObject
31 */
32 public function setContentObject(\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $contentObject): void;
33
34 /**
35 * Get the content object
36 *
37 * @return \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer|null
38 */
39 public function getContentObject(): ?\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
40
41 /**
42 * Returns the specified configuration.
43 * The actual configuration will be merged from different sources in a defined order.
44 *
45 * Note that this is a low level method and only makes sense to be used by Extbase internally.
46 *
47 * @param string $configurationType The kind of configuration to fetch - must be one of the CONFIGURATION_TYPE_* constants
48 * @param string $extensionName if specified, the configuration for the given extension will be returned.
49 * @param string $pluginName if specified, the configuration for the given plugin will be returned.
50 * @return array The configuration
51 */
52 public function getConfiguration(string $configurationType, ?string $extensionName = null, ?string $pluginName = null): array;
53
54 /**
55 * Sets the specified raw configuration coming from the outside.
56 * Note that this is a low level method and only makes sense to be used by Extbase internally.
57 *
58 * @param array $configuration The new configuration
59 */
60 public function setConfiguration(array $configuration = []): void;
61
62 /**
63 * Returns TRUE if a certain feature, identified by $featureName
64 * should be activated, FALSE for backwards-compatible behavior.
65 *
66 * This is an INTERNAL API used throughout Extbase and Fluid for providing backwards-compatibility.
67 * Do not use it in your custom code!
68 *
69 * @param string $featureName
70 * @return bool
71 */
72 public function isFeatureEnabled(string $featureName): bool;
73 }