Using the API

Besides the usage via the TYPO3 backend and the console commands, there is also a public PHP API. It can be used to execute the cache warmup directly in PHP code.

class EliasHaeussler\Typo3Warming\Service\CacheWarmupService

Service to run cache warmup for sites and pages.

warmupSites($sites, $request)

Run cache warmup for given list of sites.

Parameters
  • $sites (array) -- List of sites to be warmed up.

  • $request (EliasHaeussler\Typo3Warming\Request\WarmupRequest) -- Additional cache warmup request parameters.

Return type

EliasHaeussler\CacheWarmup\Crawler\CrawlerInterface

warmupPages($pageIds, $request)

Run cache warmup for given list of pages.

Parameters
  • $pageIds (array) -- List of pages to be warmed up.

  • $request (EliasHaeussler\Typo3Warming\Request\WarmupRequest) -- Additional cache warmup request parameters.

Return type

EliasHaeussler\CacheWarmup\Crawler\CrawlerInterface

generateUri($pageId, $languageId = null)

Generate uri for given page and optional language.

Parameters
  • $pageId (int) -- ID of the page for which the uri is to be generated.

  • $languageId (int) -- Optional language ID to respect when generating the uri.

Return type

Psr\Http\Message\UriInterface

getCrawler()

Return crawler being used for cache warmup.

Return type

Psr\Http\Message\UriInterface

setCrawler($crawler)

Set crawler to use for cache warmup.

Parameters
  • $crawler (string|EliasHaeussler\CacheWarmup\Crawler\CrawlerInterface) -- The crawler to use for cache warmup.

Returns

The service object (fluent setter).

Example

use EliasHaeussler\Typo3Warming;
use TYPO3\CMS\Core;

$cacheWarmupService = Core\Utility\GeneralUtility::makeInstance(Typo3Warming\Service\CacheWarmupService::class);
$request = new Typo3Warming\Request\WarmupRequest();

// Get all sites
$siteFinder = Core\Utility\GeneralUtility::makeInstance(Core\Site\SiteFinder::class);
$sites = $siteFinder->getAllSites();

// Run cache warmup for all sites
$crawler = $cacheWarmupService->warmupSites($sites, $request);

// Run cache warmup for single pages only
$crawler = $cacheWarmupService->warmupPages([1, 2, 3], $request);

// Evaluate crawling states
$failedUrls = $crawler->getFailedUrls();
$successfulUrls = $crawler->getSuccessfulUrls();