‪TYPO3CMS  ‪main
ConstraintsViewHelper.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
23 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
24 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
25 
31 final class ‪ConstraintsViewHelper extends AbstractViewHelper
32 {
33  public function ‪initializeArguments(): void
34  {
35  $this->registerArgument('extension', Extension::class, 'extension to process', true);
36  }
37 
38  public static function ‪renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext): array
39  {
40  $groupedConstraints = [];
41  foreach ($arguments['extension']->getDependencies() as $dependency) {
42  $groupedConstraints[$dependency->getType()][‪self::getTransformedIdentifier($dependency->getIdentifier())] = [
43  'version' => ‪self::getVersionString($dependency->getLowestVersion(), $dependency->getHighestVersion()),
44  'versionCompatible' => ‪self::isVersionCompatible($dependency),
45  ];
46  }
47  return $groupedConstraints;
48  }
49 
50  protected static function ‪getTransformedIdentifier(string ‪$identifier): string
51  {
53  ? strtoupper(‪$identifier)
54  : strtolower(‪$identifier);
55  }
56 
57  protected static function ‪getVersionString(string $lowestVersion, string $highestVersion): string
58  {
59  $version = '';
60  if ($lowestVersion !== '') {
61  $version .= '(' . $lowestVersion;
62  if ($highestVersion !== '') {
63  $version .= ' - ' . $highestVersion;
64  }
65  $version .= ')';
66  }
67  return $version;
68  }
69 
70  protected static function ‪isVersionCompatible(‪Dependency $dependency): bool
71  {
72  if ($dependency->‪getIdentifier() === 'typo3') {
74  }
75  if ($dependency->‪getIdentifier() === 'php') {
76  return $dependency->‪isVersionCompatible(PHP_VERSION);
77  }
78  return true;
79  }
80 }
‪TYPO3\CMS\Core\Utility\VersionNumberUtility
Definition: VersionNumberUtility.php:26
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency
Definition: Dependency.php:28
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper\getTransformedIdentifier
‪static getTransformedIdentifier(string $identifier)
Definition: ConstraintsViewHelper.php:50
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper\isVersionCompatible
‪static isVersionCompatible(Dependency $dependency)
Definition: ConstraintsViewHelper.php:70
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper\initializeArguments
‪initializeArguments()
Definition: ConstraintsViewHelper.php:33
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:30
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper\renderStatic
‪static renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
Definition: ConstraintsViewHelper.php:38
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper\getVersionString
‪static getVersionString(string $lowestVersion, string $highestVersion)
Definition: ConstraintsViewHelper.php:57
‪TYPO3\CMS\Extensionmanager\ViewHelpers\ConstraintsViewHelper
Definition: ConstraintsViewHelper.php:32
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\getNumericTypo3Version
‪static getNumericTypo3Version()
Definition: VersionNumberUtility.php:51
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency\getIdentifier
‪getIdentifier()
Definition: Dependency.php:85
‪TYPO3\CMS\Extensionmanager\ViewHelpers
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency\$specialDependencies
‪static array $specialDependencies
Definition: Dependency.php:38
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency\isVersionCompatible
‪bool isVersionCompatible(string $version)
Definition: Dependency.php:107
‪TYPO3\CMS\Webhooks\Message\$identifier
‪identifier readonly string $identifier
Definition: FileAddedMessage.php:37