PHPackages                             jvmtech/warmupcache - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. jvmtech/warmupcache

ActiveNeos-package[Caching](/categories/caching)

jvmtech/warmupcache
===================

Wormup Neos CMS full static cache or fusion caches by crawling selected urls or websites.

0.1.1(1y ago)1332MITPHP

Since Jun 10Pushed 1y ago2 watchersCompare

[ Source](https://github.com/jvm-tech/JvMTECH.WarmupCache)[ Packagist](https://packagist.org/packages/jvmtech/warmupcache)[ RSS](/packages/jvmtech-warmupcache/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

JvMTECH.CacheWarmup Package for Neos CMS
========================================

[](#jvmtechcachewarmup-package-for-neos-cms)

[![License](https://camo.githubusercontent.com/afe3565b5685b573c5a13af2954e2854b95796c747a52eb12147ed7f32b1bd53/68747470733a2f2f706f7365722e707567782e6f72672f6a766d746563682f7761726d757063616368652f6c6963656e7365)](https://packagist.org/packages/jvmtech/warmupcache)

Warm up your website's cache by crawling URLs or sitemaps, and include lists of allowed and denied patterns.

Installation
------------

[](#installation)

```
composer require jvmtech/warmupcache

```

How to use it?
--------------

[](#how-to-use-it)

By default the specified urls/sitemaps will be just scanned. To be able to warmup all crawled urls the Queue need to be set up.

```
flow queue:setup warmupcache

```

Then execute one of described below commands with --add-to-queue parameter to add URLs to queue.

The last step is queue execution. You can do it standard way executing one job after another:

```
./flow job:work warmupcache
watch ./flow queue:list # wait until warmupcache is zero

```

or you can use parallel execution like below (keep in mind that in this case you need to specify right limit (amount of jobs in queue divided by amount of processes you will use))

```
seq 4 | xargs -I{} -P4 sh -c "FLOW_CONTEXT=Your/Context ./flow job:work warmupcache --limit 100 --verbose"

```

Commands
--------

[](#commands)

### cachewarmup:extracturls - crawling URL(s) to extract all hrefs.

[](#cachewarmupextracturls---crawling-urls-to-extract-all-hrefs)

Useful when we would like to cherry-pick which pages/subpages would be warmed up like for example subpages of product page. Example usage (scanning 3 home page variants)

```
./flow cachewarmup:extracturls --urls=https://your.site/ch-de/institutional,https:/your.site/ch-de/pro,https://your.site/ch-de/private --add-to-queue

```

### cachewarmup:extracturlsfromsitemap - crawling sitemap to extract hrefs.

[](#cachewarmupextracturlsfromsitemap---crawling-sitemap-to-extract-hrefs)

Useful when we would like to warmup most pages from the sitemap. Example usage:

```
./flow cachewarmup:extracturlsfromsitemap --sitemaps=https://your.site/ch-de/pro/sitemap.xml --add-to-queue
./flow cachewarmup:extracturlsfromsitemap --preset=homepage

```

Presets configuration
---------------------

[](#presets-configuration)

Both commands can be used with `--preset ` parameter and use predefined settings that includes:

- urls/sitemaps list,
- allow list / deny list
- limits (how many pages should be loaded)
- additional urls settings (sufixes that would be added to pages matching specified pattern)

```
JvMTECH:
  WarmupCache:
    basicauth:
#      login: ''
#      pass: ''

    presets:

#      Example #1
#      We want to warmup only subpages that are linked to from home page
#      as we don't want to scan all insights or news
#      skipping mailto & _Resources links
      'homepage':
        urls:
          - 'https://your.site/ch-de/pro/'
          - 'https://your.site/ch-de/private/'
        allowlist:
          # if values specified only pages matching pattern will be whitelisted
        denylist:
          - '/mailto\:/i'  # to exclude all "mailto:" links
          - '/\/_Resources\//i' # to exclude links containing "_Resources"
#        limit: 0

#      Example #2
#      Each shareclass page has 3 functional subpages that are not in sitemap,
#      but we want to have them cached - check addUrls section
      'products':
        sitemaps:
          - 'https://your.site/ch-de/pro/sitemap.xml'
          - 'https://your.site/ch-de/private/sitemap.xml'
        allowlist:
          - '/\/products\//i'
        denylist:
        limits: 0,0 # for each sitemap separated with comma (,)
        addUrls: # links finishing with -currencySymbol are extended with subpages
          '/prices.json': '/(-usd|-eur|-chf|-gbp)$/i'
          '/productdocuments': '/(-usd|-eur|-chf|-gbp)$/i'
          '/productdocumentssimple': '/(-usd|-eur|-chf|-gbp)$/i'

```

---

by [jvmtech.ch](https://jvmtech.ch)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity31

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

2

Last Release

704d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/56817323?v=4)[jvmtech](/maintainers/jvmtech)[@Jvmtech](https://github.com/Jvmtech)

---

Top Contributors

[![sbruggmann](https://avatars.githubusercontent.com/u/1162368?v=4)](https://github.com/sbruggmann "sbruggmann (2 commits)")[![sjgregorczyk](https://avatars.githubusercontent.com/u/166704431?v=4)](https://github.com/sjgregorczyk "sjgregorczyk (1 commits)")

### Embed Badge

![Health badge](/badges/jvmtech-warmupcache/health.svg)

```
[![Health](https://phpackages.com/badges/jvmtech-warmupcache/health.svg)](https://phpackages.com/packages/jvmtech-warmupcache)
```

###  Alternatives

[react/cache

Async, Promise-based cache interface for ReactPHP

444112.4M40](/packages/react-cache)[wp-media/wp-rocket

Performance optimization plugin for WordPress

7431.3M3](/packages/wp-media-wp-rocket)[illuminate/cache

The Illuminate Cache package.

12835.6M1.4k](/packages/illuminate-cache)[colinmollenhour/php-redis-session-abstract

A Redis-based session handler with optimistic locking

6325.6M14](/packages/colinmollenhour-php-redis-session-abstract)[cheprasov/php-redis-client

Php client for Redis. It is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0

1281.2M21](/packages/cheprasov-php-redis-client)[amphp/redis

Efficient asynchronous communication with Redis servers, enabling scalable and responsive data storage and retrieval.

165634.7k44](/packages/amphp-redis)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
