PHPackages                             garvinhicking/redirect-forward-example - 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. garvinhicking/redirect-forward-example

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

garvinhicking/redirect-forward-example
======================================

0.1.0(1y ago)03PHP

Since Oct 17Pushed 1y ago1 watchersCompare

[ Source](https://github.com/garvinhicking/extbase-redirectforward-example)[ Packagist](https://packagist.org/packages/garvinhicking/redirect-forward-example)[ RSS](/packages/garvinhicking-redirect-forward-example/feed)WikiDiscussions main Synced today

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

extbase-redirectforward-example
===============================

[](#extbase-redirectforward-example)

A TYPO3 example of handling redirects and forwards.

TYPO3 Extbase has an ActionController::processRequest() handling that calls:

- execute initializeAction()
- execute initialize\[TARGET\]Action()
- Perform argument mapping
- execute \[TARGET\]Action()

The actual actions return ResponseInterface objects. Only those can interact properly with a RedirectResponse or a ForwardResponse.

The difference:

- Redirect performs an additional HTTP request
- Forward operates within the same HTTP request

The `initialize[TARGET]Action()` methods however can not deal with forwarding to other methods, because vital arguments and view mapping has not yet taken place.

To deal with this you can:

- throw an immediate PropagateResponseException($response) exception. That ends the FULL HTTP Request and emits an error. Note that if your Extbase plugin is just one content element on a page, this will "kill" the full page flow and emit the message you have passed in $response.
- Let your initialize actions make the arguments valid again, so that your actual action can be called. Then the actual action handles this state and performs redirection or forwarding. You can for example enrich your request context with a specific attribute to flag this needed forwarding. This will allow you to just act on the Extbase plugin level, and not the whole page-level.

To showcase this, this extensions DummyController makes use of several variants on how to handle it.

Enjoy. Let me know if this helped you in any way, shape or form.

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity29

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

624d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/273326?v=4)[Garvin Hicking](/maintainers/garvinhicking)[@garvinhicking](https://github.com/garvinhicking)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/garvinhicking-redirect-forward-example/health.svg)

```
[![Health](https://phpackages.com/badges/garvinhicking-redirect-forward-example/health.svg)](https://phpackages.com/packages/garvinhicking-redirect-forward-example)
```

###  Alternatives

[friendsoftypo3/content-blocks

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

103519.9k53](/packages/friendsoftypo3-content-blocks)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)[typo3/cms-scheduler

TYPO3 CMS Scheduler - Schedule tasks to run once or periodically at a specific time.

169.3M231](/packages/typo3-cms-scheduler)[typo3/cms-lowlevel

TYPO3 CMS Lowlevel - Technical analysis of the system. This includes raw database search, checking relations, counting pages and records etc.

178.2M316](/packages/typo3-cms-lowlevel)[typo3/cms-redirects

TYPO3 CMS Redirects - Create manual redirects, list existing redirects and automatically createredirects on slug changes.

167.4M80](/packages/typo3-cms-redirects)[typo3/cms-form

TYPO3 CMS Form - Flexible TYPO3 frontend form framework that comes with a backend editor interface.

147.6M265](/packages/typo3-cms-form)

PHPackages © 2026

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