Skip to content

Commit dcdd17b

Browse files
committed
feat: issue 42 remove Extensionmanager\Utility\ListUtility
The used Class is an internal API and should not be used. Problems occured during usage of ExtBase while retrieving TER informations of an extension without an existing TSFE.
1 parent 1db8809 commit dcdd17b

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

Classes/Details/ExtensionDetails.php

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
* The TYPO3 project - inspiring people to share!
1919
*/
2020

21-
use TYPO3\CMS\Core\Utility\GeneralUtility;
21+
use SchamsNet\Nagios\Controller\NagiosController;
22+
use TYPO3\CMS\Core\Package\PackageManager;
2223
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
2324
use TYPO3\CMS\Extbase\Object\ObjectManager;
24-
use TYPO3\CMS\Extensionmanager\Utility\ListUtility;
25-
use SchamsNet\Nagios\Controller\NagiosController;
2625

2726
/**
2827
* Class contains methods for extension-related details, such as extension versions.
@@ -35,16 +34,16 @@ class ExtensionDetails
3534
private $availableExtensions = [];
3635

3736
/**
38-
* Extensionmanager ListUtility
37+
* PackageManager
3938
*/
40-
private ListUtility $extensionListUtility;
39+
private PackageManager $packageManager;
4140

4241
/**
4342
* Constructor
4443
*/
45-
public function __construct(ListUtility $extensionListUtility)
44+
public function __construct(PackageManager $packageManager)
4645
{
47-
$this->extensionListUtility = $extensionListUtility;
46+
$this->packageManager = $packageManager;
4847
}
4948

5049
/**
@@ -53,16 +52,14 @@ public function __construct(ListUtility $extensionListUtility)
5352
public function getAvailableExtensions(bool $loadedExtensionsOnly = false): array
5453
{
5554
$installedExtensions = [];
56-
$this->availableExtensions = $this->extensionListUtility
57-
->getAvailableAndInstalledExtensionsWithAdditionalInformation();
55+
$this->availableExtensions = $this->packageManager->getAvailablePackages();
5856

5957
foreach ($this->availableExtensions as $extensionKey => $extensionDetails) {
60-
if (array_key_exists('type', $extensionDetails)
61-
&& array_key_exists('version', $extensionDetails)
62-
&& $this->isValidExtensionKey($extensionKey)
63-
&& strtolower($extensionDetails['type']) == 'local') {
58+
if ($extensionDetails->getPackageMetaData()->isExtensionType() &&
59+
!$extensionDetails->getPackageMetaData()->isFrameworkType() &&
60+
$this->isValidExtensionKey($extensionKey)) {
6461
if (!$loadedExtensionsOnly
65-
|| ($loadedExtensionsOnly && ExtensionManagementUtility::isLoaded($extensionKey))
62+
|| ($loadedExtensionsOnly && $this->packageManager->isPackageActive($extensionKey))
6663
) {
6764
$extensionVersion = $this->getExtensionVersion($extensionKey);
6865
if ($extensionVersion) {

0 commit comments

Comments
 (0)