-
Notifications
You must be signed in to change notification settings - Fork 27
/
ApplicationContext.php
82 lines (73 loc) · 2.18 KB
/
ApplicationContext.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
/**
* Created by PhpStorm.
* User: kay
* Date: 22.03.15
* Time: 01:07.
*/
namespace KayStrobach\Dyncss\Utilities;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class ApplicationContext
{
/**
* @var \TYPO3\CMS\Install\Configuration\FeatureManager
* @inject
*/
protected $featureManager;
public function __construct()
{
$objectManager = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$this->featureManager = $objectManager->get('TYPO3\CMS\Install\Configuration\FeatureManager');
}
/**
* @return bool
*/
public static function isDevelopmentModeActive()
{
$applicationContext = new self();
return $applicationContext->isDevelopmentApplicationContext() || $applicationContext->isDevelopPresetActive();
}
/**
* @return bool
*/
public function isDevelopmentApplicationContext()
{
if (GeneralUtility::getApplicationContext()->isDevelopment()) {
return true;
}
return false;
}
/**
* @throws \TYPO3\CMS\Install\Configuration\Exception
*
* @return null|\TYPO3\CMS\Install\Configuration\AbstractPreset
*/
public function isDevelopPresetActive()
{
$features = $this->featureManager->getInitializedFeatures([]);
/* @var \TYPO3\CMS\Install\Configuration\Context\ContextFeature $contextPreset */
$contextFeature = null;
foreach ($features as $feature) {
if ($feature instanceof \TYPO3\CMS\Install\Configuration\Context\ContextFeature) {
$contextFeature = $feature;
continue;
}
}
if ($contextFeature === null) {
return;
}
$activePreset = null;
$presets = $contextFeature->getPresetsOrderedByPriority();
foreach ($presets as $preset) {
/** @var \TYPO3\CMS\Install\Configuration\AbstractPreset $preset */
if ($preset->isActive()) {
$activePreset = $preset;
continue;
}
}
if ($activePreset->getName() === 'Development') {
return true;
}
return false;
}
}