PHPackages                             andersundsehr/ssi-include - 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. andersundsehr/ssi-include

ActiveTypo3-cms-extension

andersundsehr/ssi-include
=========================

Allows to periodically create ssi includes from anders und sehr GmbH

2.2.0(7mo ago)09.2k↓50%1GPL-3.0-or-laterPHPPHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0CI passing

Since Feb 16Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/andersundsehr/ssi_include)[ Packagist](https://packagist.org/packages/andersundsehr/ssi-include)[ RSS](/packages/andersundsehr-ssi-include/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (24)Used By (1)

EXT:ssi\_include
================

[](#extssi_include)

This Extension will help you to update your Menu's and other Partials faster if they are rendered the Same over all your Pages.

It uses the SSI technique to include Partials without rendering at that moment.
It Caches the files inside typo3temp/tx\_ssiinclude/ so it will reused the same partial for every request.
The Partials will be different for the site Configuration and the sys\_langauge and the name you will give the Partial.

Requirements:
-------------

[](#requirements)

- TYPO3 &gt;=10
- SSI enabled on Server
- SSI errors disabled (otherwise there will be an error in your Backend)

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

[](#installation)

`composer req andersundsehr/ssi-include`

### enable SSI in webserver

[](#enable-ssi-in-webserver)

You need to enable SSI on your Webserver:

Tested only with nginx. Should work with apache,

in your fastcgi part of your config:

```
location ~ \.php$ {
  # add next 2 lines:
  ssi on; #this must be on
  ssi_silent_errors on; #this should be on

  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $request_filename;
  fastcgi_read_timeout 600;
}
```

If you use **staticfilecache**, you should use it ♥️
you need to add the ssi config in there as well:

```
...

location @sfc {
  # add next 2 lines:
  ssi on; #this must be on
  ssi_silent_errors on; #this should be on

  ...

  charset utf-8;
  default_type text/html;
  try_files /typo3temp/tx_staticfilecache/https_${host}_443${uri}/index /typo3temp/tx_staticfilecache/${scheme}_${host}_${server_port}${uri}/index =405;
}

...
```

And now the fun part. You can replace any partial rendering with the ViewHelper `s:renderInclude`.
That Partial will only be rendered once every 5 minutes for the complete Site (Site Configuration Site (not Page)).
The only differentiation will be done by **site config**, **language** and the provided **name**.
Optionally, you can add **cacheLifeTime** to define the lifetime of the partial in seconds and **cacheTags** to invalidate the cache by flushByTags. If you include want to render the same partial with diffrent arguments it will still be the same content if you have the same name.

#### before:

[](#before)

```

```

#### after:

[](#after)

```

```

### The Cache options

[](#the-cache-options)

#### storeData

[](#storedata)

If you want to store the data in the cache to receive by get. This defaults to on, but if you want to spare some space you can disable it.

#### ssiIncludeDir

[](#ssiincludedir)

Public directory where the SSI files are stored.

### Using the LazyDataProcessor to increase the Performance even more.

[](#using-the-lazydataprocessor-to-increase-the-performance-even-more)

#### before:

[](#before-1)

```
10 = FLUIDTEMPLATE
10 {
  #...
  100 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
  100 {
    #... Menu Processor Config
  }
  200 = AUS\AusProject\DataProcessing\SpecialProcessor
  #...
}
```

#### after:

[](#after-1)

```
10 = FLUIDTEMPLATE
10 {
  #...
  100 = AUS\SsiInclude\DataProcessing\LazyDataProcessor
  100.proxiedProcessor = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
  100.proxiedProcessor {
    #... Menu Processor Config
  }

  200 = AUS\SsiInclude\DataProcessing\LazyDataProcessor
  200.proxiedProcessor = AUS\AusProject\DataProcessing\SpecialProcessor
  200.variables = specialVar
  # the LazyDataProcessor needs to know that variable name should be proxied.
  # So we need to tell him if it is not configured inside the proxiedProcessor.as setting.

  #...
}
```

Now the Setup is done 😊

with ♥️ from anders und sehr GmbH
=================================

[](#with-️-from-anders-und-sehr-gmbh)

> If something did not work 😮
> or you appreciate this Extension 🥰 let us know.

> We are hiring

###  Health Score

48

—

FairBetter than 95% of packages

Maintenance62

Regular maintenance activity

Popularity24

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 54% 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 ~82 days

Recently: every ~34 days

Total

17

Last Release

238d ago

Major Versions

1.1.0 → 2.0.02024-10-08

PHP version history (4 changes)1.0.0PHP ~7.4.0 || ~8.0.0 || ~8.1.0

1.0.3PHP ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0

1.1.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0

2.2.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/471387?v=4)[Matthias Vogel](/maintainers/Kanti)[@Kanti](https://github.com/Kanti)

![](https://www.gravatar.com/avatar/ce27306c234536251754f00414959671d4a775e9cf57cce2f5ea1dca158183d6?d=identicon)[andersundsehr](/maintainers/andersundsehr)

---

Top Contributors

[![weakbit](https://avatars.githubusercontent.com/u/12049749?v=4)](https://github.com/weakbit "weakbit (34 commits)")[![Kanti](https://avatars.githubusercontent.com/u/471387?v=4)](https://github.com/Kanti "Kanti (15 commits)")[![aus-DominikHalle](https://avatars.githubusercontent.com/u/70956826?v=4)](https://github.com/aus-DominikHalle "aus-DominikHalle (6 commits)")[![forxec](https://avatars.githubusercontent.com/u/54136194?v=4)](https://github.com/forxec "forxec (6 commits)")[![CamillH](https://avatars.githubusercontent.com/u/40384365?v=4)](https://github.com/CamillH "CamillH (2 commits)")

---

Tags

cmshacktoberfestphpssitypo3

### Embed Badge

![Health badge](/badges/andersundsehr-ssi-include/health.svg)

```
[![Health](https://phpackages.com/badges/andersundsehr-ssi-include/health.svg)](https://phpackages.com/packages/andersundsehr-ssi-include)
```

###  Alternatives

[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M49](/packages/fluidtypo3-vhs)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[fluidtypo3/flux

The flux package from FluidTYPO3

152982.2k20](/packages/fluidtypo3-flux)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[brotkrueml/schema

Embedding schema.org vocabulary - API and view helpers for schema.org markup

33584.6k13](/packages/brotkrueml-schema)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

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