PHPackages                             sitegeist/shelflife - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. sitegeist/shelflife

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

sitegeist/shelflife
===================

Calculate modification dates for documents that take content into account

v1.0.0(10mo ago)01.0k↓50%1GPL-3.0-or-laterPHPCI passing

Since Jul 3Pushed 10mo agoCompare

[ Source](https://github.com/sitegeist/Sitegeist.ShelfLife)[ Packagist](https://packagist.org/packages/sitegeist/shelflife)[ RSS](/packages/sitegeist-shelflife/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Sitegeist.ShelfLife
===================

[](#sitegeistshelflife)

Last-modification-dates for Documents (sitemap.xml) that take content modifications into account
------------------------------------------------------------------------------------------------

[](#last-modification-dates-for-documents-sitemapxml-that-take-content-modifications-into-account)

Since Neos calculates the last modification dates for a document solely based on the last changes to the document-node itself those dates do not take changes to the content of the document into account because this would be an expensive calculation at read time.

This package will listen to the changes made to nodes and store modifications date for the closest live documents in a dedicated database table that can then be accessed easily. This allows to generate correct modification dates for the sitemap.xml but also allows to use the stored dates for other purposes.

!!! The package respects the node dimensions but is not extensively tested in this regard yet as it is developed for a one dimensional use case. Dou your own testing if you want to use it in a multidimensional environment. !!!

### Authors &amp; Sponsors

[](#authors--sponsors)

- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by our customer *

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

[](#installation)

Sitegeist.ShelfLife is available via packagist. Run `composer require sitegeist/shelflife`.

We use semantic-versioning so every breaking change will increase the major-version number.

Usage
-----

[](#usage)

### sitemap.xml

[](#sitemapxml)

The package will automatically adjust the sitemap.xml and use newer dates from observed modifications when possible. When no modifications were observed for a node yet the existing last modification date is used.

### Eel

[](#eel)

To access the observed modifications dates the helper `Sitegeist.ShelfLife.documentModificationDate` is added that will return the observed modifiction date (including content) or fallback to the last modification date as it was before.

```
lastModificationDate = ${Sitegeist.ShelfLife.documentModificationDate( node )}

```

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance54

Moderate activity, may be stable

Popularity20

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

320d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51e0a02d8e12b73949ec858638aa7e295e103022cc5a879f86ac8532c2c170bd?d=identicon)[sitegeist](/maintainers/sitegeist)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (2 commits)")

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sitegeist-shelflife/health.svg)

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

###  Alternatives

[yoast/yoast-seo-for-neos

Yoast SEO for Neos CMS

24164.8k](/packages/yoast-yoast-seo-for-neos)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2540.7k](/packages/kaufmanndigital-gdpr-cookieconsent)[neos/seo

SEO configuration and tools for Neos

13990.5k24](/packages/neos-seo)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)[shel/neos-commandbar

A commandbar (CMD+K) for Neos CMS

1614.6k1](/packages/shel-neos-commandbar)

PHPackages © 2026

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