PHPackages                             teelevision/redaxo5-laravel - 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. [Framework](/categories/framework)
4. /
5. teelevision/redaxo5-laravel

ActiveProject[Framework](/categories/framework)

teelevision/redaxo5-laravel
===========================

The Laravel Framework as Redaxo5 AddOn.

v5.5.28(7y ago)55MITPHPPHP &gt;=7.0.0

Since Feb 17Pushed 7y ago1 watchersCompare

[ Source](https://github.com/Teelevision/redaxo5-laravel)[ Packagist](https://packagist.org/packages/teelevision/redaxo5-laravel)[ RSS](/packages/teelevision-redaxo5-laravel/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (8)Versions (4)Used By (0)

Laravel as Redaxo5 add-on
=========================

[](#laravel-as-redaxo5-add-on)

`teelevision/redaxo5-laravel` is a port of the [Laravel framework](https://github.com/laravel/laravel) that runs as an add-on in [Redaxo5](https://github.com/redaxo/redaxo). It aims at enabling you to write Redaxo5 add-ons the way you would write a Laravel application.

Documentation
-------------

[](#documentation)

This documentation only covers the differences to the [Laravel documentation](https://laravel.com/docs/5.7). Any topic not mentioned below should in theory work as described in the Laravel documentation. In practice many features are yet untested.

### [Installation](https://laravel.com/docs/5.7/installation)

[](#installation)

In addition to the [Server Requirements](https://laravel.com/docs/5.7/installation#server-requirements) you will need a running instance of Redaxo version 5.0 or greater.

Inside your Redaxo installation go to `/redaxo/src/addons` and run the following to install:

```
composer create-project teelevision/redaxo5-laravel my_laravel_addon "5.7.*"
```

You do not need to configure your web server. I mean, there is no way to, you have to get a web server running Redaxo, not the add-on. You can use pretty URLs in the frontend using [YRewrite](https://github.com/yakamara/redaxo_yrewrite), I suppose. In the backend pretty URLs are not be supported.

You should still [configure](https://laravel.com/docs/5.7/installation#configuration) your `.env` file, especially creating an application key.

Like every other add-on you have to install it in the Redaxo backend in order to use it.

Make sure that the root directory of your add-on is writable, as well as the `storage` directory, its sub-directories, and the `bootstrap/cache` directory.

### [Directory Structure](https://laravel.com/docs/5.7/structure) and [Request Lifecycle](https://laravel.com/docs/5.7/lifecycle)

[](#directory-structure-and-request-lifecycle)

- The `assets` directory is the [Redaxo add-on `assets` directory](https://redaxo.org/doku/master/addon-assets). Any files placed here are copied to a public directory when installing the add-on.
- [The `config` directory](https://laravel.com/docs/5.7/structure#the-config-directory) does not contain the `cache` directory which instead is moved to Redaxo's cache.
- The `lib` directory is used by add-ons to provide code that Redaxo scans and auto-loads. So this is directory needs to be used for classes and functions that should be available in the frontend (Redaxo modules) or to other add-ons.
- The `pages` directory
    - Contains some files for booting laravel in the backend and frontend.
    - The entry point for all requests to the add-on are the files `pages/index.php` and `pages/frontend.php` instead of `public/index.php`. But those files do not really qualify as entry points. They are more like the interface between the add-on and Redaxo or other add-ons. Redaxo calls `pages/index.php` automatically for any backend add-on page.
- [The `public` directory](https://laravel.com/docs/5.7/structure#the-public-directory) does not exist. The functionality lies within the `assets` and `pages` directories.
- [The `storage` directory](https://laravel.com/docs/5.7/structure#the-storage-directory)
    - The compiled Blade templates and the framework cache are stored in Redaxo's cache rather than this directory.
- [The `vendor` directory](https://laravel.com/docs/5.7/structure#the-vendor-directory) is renamed `vendor-composer` because otherwise Redaxo tries to index all the files in there which could take minutes.
- The `package.yml` file describes your add-on and is required by Redaxo.
- The `app/Redaxo` directory contains models for redaxo database tables like users. This does not yet contain all models and each model could be incomplete.

### [Routing](https://laravel.com/docs/5.7/routing)

[](#routing)

- A route's uri is matched against the `page` query parameter instead of the path of the uri. For example the route `my_laravel_addon/welcome` matches `page=my_laravel_addon/welcome` which is how Redaxo knows where to route a request in the backend. This requires you to begin your route's uri with the name of your add-on. However you can define frontend routes that do not have this limitation. Frontend routes can be called using `MyLaravelAddOn::frontend('route_uri')` from Redaxo modules in the frontend or basically from everywhere outside your add-on.
- You have to describe all your routes in your `package.yml` so that Redaxo knows that it should call your add-on.
- Route parameters are not supported since all routes have to be pre-defined in the `package.yml` which does not support it. The query parameters except `page` are used as route parameters instead for callback/controller arguments. This is untested if there are multiple parameters since the order might not be defined which would lead to problems. So only use one parameter to be sure. Also there is no equivalent for a required parameter, which requires you to check each argument yourself. It could be possible to write a route validator using the route's wheres to achieve this.

### [HTTP Responses](https://laravel.com/docs/5.7/responses)

[](#http-responses)

- When returning a JSON response on a *frontend* route the content of the response is returned to the caller of `MyLaravelAddOn::frontend($uri)`. Otherwise `null` is returned.

### [Views](https://laravel.com/docs/5.7/views)

[](#views)

- Redaxo embeds the output of your add-on in the HTML that Redaxo generates in the backend and frontend. Therefore your views don't need to generate HTML headers and the sort.

### [URL Generation](https://laravel.com/docs/5.7/urls)

[](#url-generation)

- You can generate urls using `action()` and `route()` helpers for backend routes only. This is because for frontend routes it is not generally possible to tell from which single url a frontend route will be called. Frontend routes can be called from anywhere outside your add-on.
- Don't use the `url()` helper to generate urls, instead use the [`rex_url` class](https://redaxo.org/doku/master/pfade) and [`rex_getUrl` function](https://redaxo.org/doku/master/service-urls) provided by Redaxo.

### [Pagination](https://laravel.com/docs/5.7/pagination)

[](#pagination)

- Per default any pagination uses the `page` query parameter which is used by Redaxo in the backend for routing requests. Therefore you have to explicitly change the pagination page parameter like for example: `->paginate(15, ['*'], 'p')`.

Motivation
----------

[](#motivation)

Redaxo provides very little for add-ons compared to the huge frameworks like Laravel. While this works for small add-ons it hardly satisfies my developer needs when creating something bigger. During one project I saw myself using more and more of the [`illuminate/*` packages](https://github.com/illuminate) that I love so much, that I decided to try booting the whole framework. I don't want to take a stand on whether this is a good idea, I just want to share this solution that helped me finish that one project.

License
-------

[](#license)

The Laravel framework is licensed as stated on [their page](https://github.com/laravel/laravel).

All changes to the Laravel framework in this repository are open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

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

Total

3

Last Release

2627d ago

PHP version history (2 changes)5.6.x-devPHP ^7.1.3

5.5.x-devPHP &gt;=7.0.0

### Community

Maintainers

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

---

Top Contributors

[![taylorotwell](https://avatars.githubusercontent.com/u/463230?v=4)](https://github.com/taylorotwell "taylorotwell (4318 commits)")[![daylerees](https://avatars.githubusercontent.com/u/207870?v=4)](https://github.com/daylerees "daylerees (105 commits)")[![franzliedke](https://avatars.githubusercontent.com/u/249125?v=4)](https://github.com/franzliedke "franzliedke (92 commits)")[![GrahamCampbell](https://avatars.githubusercontent.com/u/2829600?v=4)](https://github.com/GrahamCampbell "GrahamCampbell (71 commits)")[![jasonlewis](https://avatars.githubusercontent.com/u/829059?v=4)](https://github.com/jasonlewis "jasonlewis (48 commits)")[![Teelevision](https://avatars.githubusercontent.com/u/4125691?v=4)](https://github.com/Teelevision "Teelevision (40 commits)")[![sparksp](https://avatars.githubusercontent.com/u/243893?v=4)](https://github.com/sparksp "sparksp (37 commits)")[![cviebrock](https://avatars.githubusercontent.com/u/166810?v=4)](https://github.com/cviebrock "cviebrock (33 commits)")[![tobsn](https://avatars.githubusercontent.com/u/109529?v=4)](https://github.com/tobsn "tobsn (26 commits)")[![crynobone](https://avatars.githubusercontent.com/u/172966?v=4)](https://github.com/crynobone "crynobone (25 commits)")[![driesvints](https://avatars.githubusercontent.com/u/594614?v=4)](https://github.com/driesvints "driesvints (23 commits)")[![JeffreyWay](https://avatars.githubusercontent.com/u/183223?v=4)](https://github.com/JeffreyWay "JeffreyWay (20 commits)")[![tillkruss](https://avatars.githubusercontent.com/u/665029?v=4)](https://github.com/tillkruss "tillkruss (17 commits)")[![themsaid](https://avatars.githubusercontent.com/u/4332182?v=4)](https://github.com/themsaid "themsaid (16 commits)")[![JosephSilber](https://avatars.githubusercontent.com/u/1403741?v=4)](https://github.com/JosephSilber "JosephSilber (16 commits)")[![laurencei](https://avatars.githubusercontent.com/u/1210658?v=4)](https://github.com/laurencei "laurencei (14 commits)")[![bencorlett](https://avatars.githubusercontent.com/u/181919?v=4)](https://github.com/bencorlett "bencorlett (13 commits)")[![barryvdh](https://avatars.githubusercontent.com/u/973269?v=4)](https://github.com/barryvdh "barryvdh (11 commits)")[![neoascetic](https://avatars.githubusercontent.com/u/725836?v=4)](https://github.com/neoascetic "neoascetic (11 commits)")[![ericlbarnes](https://avatars.githubusercontent.com/u/116662?v=4)](https://github.com/ericlbarnes "ericlbarnes (11 commits)")

---

Tags

laravelredaxoredaxo-addonredaxo5frameworklaravel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/teelevision-redaxo5-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/teelevision-redaxo5-laravel/health.svg)](https://phpackages.com/packages/teelevision-redaxo5-laravel)
```

###  Alternatives

[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3691.5k](/packages/codewithdennis-larament)[ercogx/laravel-filament-starter-kit

This is a Filament v3 Starter Kit for Laravel 12, designed to accelerate the development of Filament-powered applications.

401.5k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

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