Skip to content

Commit 93fdfd1

Browse files
Merge pull request #557 from eliashaeussler/feature/typo3-13
[FEATURE] Add support for TYPO3 13.0
2 parents 7f8a978 + 6382f05 commit 93fdfd1

38 files changed

+355
-474
lines changed

.github/workflows/tests.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
php-version: ["8.1", "8.2", "8.3"]
19-
typo3-version: ["12.4"]
19+
typo3-version: ["12.4", "13.0"]
2020
dependencies: ["highest", "lowest"]
21+
exclude:
22+
- php-version: "8.1"
23+
typo3-version: "13.0"
2124
steps:
2225
- uses: actions/checkout@v4
2326
with:

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
/Resources/Private/Libs/Build/vendor
44
/Resources/Private/Libs/vendors.phar
55
/Tests/Acceptance/Support/_generated
6-
/Tests/Build/Configuration/system/settings.php
76
/var/
87
/.php-cs-fixer.cache
98
/.phpunit.result.cache

Classes/Backend/ContextMenu/ItemProviders/CacheWarmupProvider.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,12 +171,12 @@ private function initSubMenus(): void
171171
if ($itemName === self::ITEM_MODE_SITE) {
172172
$languages = array_filter(
173173
$languages,
174-
fn(Core\Site\Entity\SiteLanguage $siteLanguage): bool => $this->canWarmupCachesOfSite($siteLanguage)
174+
fn (Core\Site\Entity\SiteLanguage $siteLanguage): bool => $this->canWarmupCachesOfSite($siteLanguage)
175175
);
176176
} else {
177177
$languages = array_filter(
178178
$languages,
179-
fn(Core\Site\Entity\SiteLanguage $siteLanguage): bool => Utility\AccessUtility::canWarmupCacheOfPage(
179+
fn (Core\Site\Entity\SiteLanguage $siteLanguage): bool => Utility\AccessUtility::canWarmupCacheOfPage(
180180
(int)$this->identifier,
181181
$siteLanguage->getLanguageId(),
182182
)

Classes/Command/WarmupCommand.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ protected function configure(): void
113113
' │ It can be defined via the extension configuration <info>strategy</info> or by using the <info>--strategy</info> option.',
114114
' │ The following strategies are currently available:',
115115
...array_map(
116-
static fn(string $strategy) => ' │ * <info>' . $strategy . '</info>',
116+
static fn (string $strategy) => ' │ * <info>' . $strategy . '</info>',
117117
array_keys($this->crawlingStrategyFactory->getAll()),
118118
),
119119
' ├─ Default: <info>' . ($this->configuration->getStrategy() ?? 'none') . '</info>',
@@ -191,7 +191,6 @@ protected function configure(): void
191191
}
192192

193193
/**
194-
* @throws CacheWarmup\Exception\InvalidUrlException
195194
* @throws Console\Exception\ExceptionInterface
196195
* @throws Core\Exception\SiteNotFoundException
197196
* @throws JsonException

Classes/Configuration/Configuration.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ public function __construct(
5050
private readonly Core\Configuration\ExtensionConfiguration $configuration,
5151
private readonly CacheWarmup\Crawler\CrawlerFactory $crawlerFactory,
5252
private readonly Crawler\Strategy\CrawlingStrategyFactory $crawlingStrategyFactory,
53-
private readonly Extbase\Security\Cryptography\HashService $hashService,
5453
) {
5554
$this->userAgent = $this->generateUserAgent();
5655
}
@@ -260,6 +259,18 @@ public function getUserAgent(): string
260259

261260
private function generateUserAgent(): string
262261
{
263-
return $this->hashService->appendHmac('TYPO3/tx_warming_crawler');
262+
$string = 'TYPO3/tx_warming_crawler';
263+
264+
if (class_exists(Core\Crypto\HashService::class)) {
265+
return Core\Utility\GeneralUtility::makeInstance(Core\Crypto\HashService::class)->appendHmac(
266+
$string,
267+
self::class,
268+
);
269+
}
270+
271+
// @todo Remove once support for TYPO3 v12 is dropped
272+
return Core\Utility\GeneralUtility::makeInstance(Extbase\Security\Cryptography\HashService::class)->appendHmac(
273+
$string,
274+
);
264275
}
265276
}

Classes/Extension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,15 @@ public static function registerFormDataProviders(): void
7070
* Register custom PageTsConfig.
7171
*
7272
* FOR USE IN ext_localconf.php ONLY.
73+
*
74+
* @todo Remove once support for TYPO3 v12 is dropped
7375
*/
7476
public static function registerPageTsConfig(): void
7577
{
78+
if ((new Core\Information\Typo3Version())->getMajorVersion() >= 13) {
79+
return;
80+
}
81+
7682
Core\Utility\ExtensionManagementUtility::addPageTSConfig('
7783
@import "EXT:warming/Configuration/TSconfig/Page.tsconfig";
7884
');

Classes/Result/CacheWarmupResult.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public function getCrawlingResultsBySite(
6464
'successful' => array_values(
6565
array_filter(
6666
$this->result->getSuccessful(),
67-
fn(CacheWarmup\Result\CrawlingResult $crawlingResult) => $this->filterBySite(
67+
fn (CacheWarmup\Result\CrawlingResult $crawlingResult) => $this->filterBySite(
6868
$crawlingResult,
6969
$site,
7070
$siteLanguage,
@@ -74,7 +74,7 @@ public function getCrawlingResultsBySite(
7474
'failed' => array_values(
7575
array_filter(
7676
$this->result->getFailed(),
77-
fn(CacheWarmup\Result\CrawlingResult $crawlingResult) => $this->filterBySite(
77+
fn (CacheWarmup\Result\CrawlingResult $crawlingResult) => $this->filterBySite(
7878
$crawlingResult,
7979
$site,
8080
$siteLanguage,

Classes/Service/CacheWarmupService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function warmup(
9595
$sitemaps = $this->sitemapLocator->locateBySite($siteWarmupRequest->getSite(), $siteLanguage);
9696
$cacheWarmer->addSitemaps(
9797
array_map(
98-
static fn(Typo3SitemapLocator\Domain\Model\Sitemap $sitemap) => Domain\Model\SiteAwareSitemap::fromLocatedSitemap($sitemap),
98+
static fn (Typo3SitemapLocator\Domain\Model\Sitemap $sitemap) => Domain\Model\SiteAwareSitemap::fromLocatedSitemap($sitemap),
9999
$sitemaps,
100100
),
101101
);

Configuration/Services.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
use EliasHaeussler\CacheWarmup;
2525
use Symfony\Component\DependencyInjection;
2626

27-
return static function (
27+
return static function(
2828
DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator,
2929
DependencyInjection\ContainerBuilder $container,
3030
): void {

Configuration/page.tsconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import 'EXT:warming/Configuration/TSconfig/Page.tsconfig'

0 commit comments

Comments
 (0)