Skip to content

Commit 30f89d1

Browse files
Merge pull request #150 from xima-media/renovate/phpstan-packages
chore(deps): update dependency konradmichalik/phpstan-typo3-preset to ^0.3
2 parents d74f8ac + ca5b570 commit 30f89d1

18 files changed

Lines changed: 79 additions & 61 deletions

Classes/EventListener/ModifyButtonBarEventListener.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
namespace Xima\XimaTypo3FrontendEdit\EventListener;
1515

16+
use Psr\Http\Message\ServerRequestInterface;
1617
use TYPO3\CMS\Backend\Template\Components\{ButtonBar, ModifyButtonBarEvent};
1718
use TYPO3\CMS\Backend\Template\Components\Buttons\InputButton;
1819
use TYPO3\CMS\Core\Attribute\AsEventListener;
@@ -55,7 +56,8 @@ public function __invoke(ModifyButtonBarEvent $event): void
5556
return;
5657
}
5758

58-
if (!array_key_exists('tx_ximatypo3frontendedit', $GLOBALS['TYPO3_REQUEST']->getQueryParams())) {
59+
$request = $GLOBALS['TYPO3_REQUEST'] ?? null;
60+
if (!$request instanceof ServerRequestInterface || !array_key_exists('tx_ximatypo3frontendedit', $request->getQueryParams())) {
5961
return;
6062
}
6163

Classes/EventListener/PageLayoutScrollEventListener.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
namespace Xima\XimaTypo3FrontendEdit\EventListener;
1515

16+
use Psr\Http\Message\ServerRequestInterface;
17+
use TYPO3\CMS\Backend\Routing\Route;
1618
use TYPO3\CMS\Backend\Template\Components\ModifyButtonBarEvent;
1719
use TYPO3\CMS\Core\Attribute\AsEventListener;
1820
use TYPO3\CMS\Core\Page\PageRenderer;
@@ -34,7 +36,7 @@
3436
public function __invoke(ModifyButtonBarEvent $event): void
3537
{
3638
$request = $GLOBALS['TYPO3_REQUEST'] ?? null;
37-
if (null === $request) {
39+
if (!$request instanceof ServerRequestInterface) {
3840
return;
3941
}
4042

@@ -47,7 +49,7 @@ public function __invoke(ModifyButtonBarEvent $event): void
4749

4850
// Verify we're on the web_layout route
4951
$route = $request->getAttribute('route');
50-
if (null === $route || 'web_layout' !== $route->getOption('_identifier')) {
52+
if (!$route instanceof Route || 'web_layout' !== $route->getOption('_identifier')) {
5153
return;
5254
}
5355

Classes/Middleware/ToolRendererMiddleware.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Psr\Container\{ContainerExceptionInterface, NotFoundExceptionInterface};
1717
use Psr\Http\Message\{ResponseInterface, ServerRequestInterface};
1818
use Psr\Http\Server\{MiddlewareInterface, RequestHandlerInterface};
19+
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
1920
use TYPO3\CMS\Core\Exception;
2021
use TYPO3\CMS\Core\Http\Stream;
2122
use Xima\XimaTypo3FrontendEdit\Service\Authentication\BackendUserService;
@@ -52,9 +53,10 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
5253
return $response;
5354
}
5455

56+
$backendUser = $GLOBALS['BE_USER'] ?? null;
5557
if (
56-
null === $GLOBALS['BE_USER']
57-
|| !is_array($GLOBALS['BE_USER']->user)
58+
!$backendUser instanceof BackendUserAuthentication
59+
|| !is_array($backendUser->user)
5860
) {
5961
return $response;
6062
}

Classes/Repository/ContentElementRepository.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,9 @@ public function __construct(
5757
public function fetchContentElements(
5858
int $pid,
5959
int $languageUid,
60-
bool $includeMultilingualContent = true,
6160
): array {
6261
try {
63-
$queryBuilder = $this->buildContentQuery($languageUid, $includeMultilingualContent);
62+
$queryBuilder = $this->buildContentQuery($languageUid, true);
6463

6564
$queryBuilder->andWhere(
6665
$queryBuilder->expr()->eq(

Classes/Service/Menu/AbstractMenuButtonBuilder.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
namespace Xima\XimaTypo3FrontendEdit\Service\Menu;
1515

16+
use TYPO3\CMS\Core\Localization\LanguageService;
1617
use Xima\XimaTypo3FrontendEdit\Configuration;
1718
use Xima\XimaTypo3FrontendEdit\Enumerations\ButtonType;
1819
use Xima\XimaTypo3FrontendEdit\Service\Ui\{IconService, UrlBuilderService};
@@ -52,4 +53,9 @@ public function addButton(
5253

5354
$menuButton->appendChild($button, $identifier);
5455
}
56+
57+
protected function getLanguageService(): LanguageService
58+
{
59+
return $GLOBALS['LANG'];
60+
}
5561
}

Classes/Service/Menu/ContentElementButtonBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function addInfoSection(
8181
): void {
8282
$this->addButton($menuButton, 'div_info', ButtonType::Divider);
8383

84-
$typeLabel = $GLOBALS['LANG']->sL($contentElementConfig['label'] ?? '') ?: $contentElement['CType'];
84+
$typeLabel = $this->getLanguageService()->sL($contentElementConfig['label'] ?? '') ?: $contentElement['CType'];
8585
$header = isset($contentElement['header']) && '' !== $contentElement['header']
8686
? htmlspecialchars(StringUtility::shortenString((string) $contentElement['header']), \ENT_QUOTES, 'UTF-8')
8787
: '';

Classes/Service/Menu/ContentElementMenuGenerator.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;
1919
use TYPO3\CMS\Core\EventDispatcher\EventDispatcher;
2020
use TYPO3\CMS\Core\Exception;
21+
use TYPO3\CMS\Core\Localization\LanguageService;
2122
use Xima\XimaTypo3FrontendEdit\Event\FrontendEditDropdownModifyEvent;
2223
use Xima\XimaTypo3FrontendEdit\Repository\ContentElementRepository;
2324
use Xima\XimaTypo3FrontendEdit\Service\Authentication\BackendUserService;
@@ -117,7 +118,7 @@ public function getDropdown(
117118
$event = $this->eventDispatcher->dispatch(new FrontendEditDropdownModifyEvent($contentElement, $menuButton, $returnUrlAnchor));
118119

119120
// Add ctypeLabel and ctypeIcon for frontend display
120-
$ctypeLabel = $GLOBALS['LANG']->sL($contentElementConfig['label'] ?? '');
121+
$ctypeLabel = $this->getLanguageService()->sL($contentElementConfig['label'] ?? '');
121122
$contentElement['ctypeLabel'] = '' !== $ctypeLabel ? $ctypeLabel : $contentElement['CType'];
122123

123124
// Render CType icon as HTML
@@ -267,4 +268,9 @@ private function resolveContextualUrl(bool $contextualEditingEnabled, int $uid,
267268

268269
return $this->urlBuilderService->buildContextualEditUrl($uid, 'tt_content', $languageUid, $returnUrl);
269270
}
271+
272+
private function getLanguageService(): LanguageService
273+
{
274+
return $GLOBALS['LANG'];
275+
}
270276
}

Classes/Service/Menu/PageButtonBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private function getDoktypeLabel(int $doktype): string
115115

116116
foreach ($items as $item) {
117117
if (isset($item['value']) && (int) $item['value'] === $doktype) {
118-
return $GLOBALS['LANG']->sL($item['label'] ?? '') ?: 'Page';
118+
return $this->getLanguageService()->sL($item['label'] ?? '') ?: 'Page';
119119
}
120120
}
121121

Classes/Service/Ui/FlashMessageService.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use JsonException;
1717
use Psr\Log\LoggerInterface;
1818
use Throwable;
19+
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
1920
use TYPO3\CMS\Core\Messaging\FlashMessageQueue;
2021
use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity;
2122

@@ -48,7 +49,8 @@ public function __construct(
4849
*/
4950
public function collectFromSession(): array
5051
{
51-
if (null === $GLOBALS['BE_USER'] || !is_array($GLOBALS['BE_USER']->user)) {
52+
$backendUser = $GLOBALS['BE_USER'] ?? null;
53+
if (!$backendUser instanceof BackendUserAuthentication || !is_array($backendUser->user)) {
5254
return [];
5355
}
5456

@@ -63,7 +65,7 @@ public function collectFromSession(): array
6365

6466
foreach ($queues as $queueIdentifier) {
6567
try {
66-
$sessionData = $GLOBALS['BE_USER']->getSessionData($queueIdentifier);
68+
$sessionData = $backendUser->getSessionData($queueIdentifier);
6769

6870
if (!is_array($sessionData) || [] === $sessionData) {
6971
continue;
@@ -92,7 +94,7 @@ public function collectFromSession(): array
9294
}
9395

9496
// Clear session after processing (malformed messages are discarded)
95-
$GLOBALS['BE_USER']->setAndSaveSessionData($queueIdentifier, null);
97+
$backendUser->setAndSaveSessionData($queueIdentifier, null);
9698
} catch (Throwable $e) {
9799
$this->logger->error('Failed to process flash message queue', [
98100
'queue' => $queueIdentifier,

Classes/Service/Ui/ResourceRendererService.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,14 @@ public function __construct(
4848
) {}
4949

5050
/**
51-
* @param array<string, mixed> $values
5251
* @param array<array{title: string, message: string, severity: string}> $flashMessages
5352
*
5453
* @throws Exception
5554
*/
56-
public function render(string $template = 'FrontendEdit.html', array $values = [], ?ServerRequestInterface $request = null, array $flashMessages = []): string
55+
public function render(ServerRequestInterface $request, array $flashMessages = []): string
5756
{
57+
$template = 'FrontendEdit.html';
58+
5859
try {
5960
$nonceValue = $this->resolveNonceValue();
6061
$nonceAttribute = '' !== $nonceValue ? ' nonce="'.$nonceValue.'"' : '';
@@ -68,9 +69,7 @@ public function render(string $template = 'FrontendEdit.html', array $values = [
6869
$this->addStickyToolbarResourcesIfEnabled($resources, $request, $nonceAttribute);
6970
$this->addFlashMessagesConfig($resources, $nonceAttribute, $flashMessages);
7071

71-
$values = [...$values, 'resources' => $resources];
72-
73-
return $this->renderView($template, $values, $request);
72+
return $this->renderView($template, ['resources' => $resources], $request);
7473
} catch (Throwable $exception) {
7574
throw new Exception('Failed to render template "'.$template.'": '.$exception->getMessage(), 1640000001, $exception);
7675
}

0 commit comments

Comments
 (0)