typo3/cms-frontend
TYPO3 CMS frontend package providing core rendering and page output features: TypoScript processing, content element rendering, menus, link generation, caching integration, and frontend controller utilities used to build and serve TYPO3 websites.
To leverage typo3/cms-frontend in a Laravel project (note: this is a CMS frontend, not a Laravel package—integration requires custom bridging), follow these steps:
Install TYPO3 CMS
public/uploads) for media assets.Laravel-TYPO3 Bridge
// app/Http/Middleware/ProxyToTypo3.php
public function handle($request, Closure $next) {
$typo3Url = config('typo3.frontend_url');
return redirect()->away($typo3Url . $request->path());
}
app/Http/Kernel.php:
protected $middlewareGroups = [
'web' => [
// ...
\App\Http\Middleware\ProxyToTypo3::class,
],
];
First Use Case: Embed TYPO3 Pages
EXT:news or EXT:frontend) to fetch page content:
// Fetch a TYPO3 page via API
$response = Http::get(config('typo3.api_url') . '/pages/123');
return view('typo3.embedded', ['content' => $response->json()]);
Static Content in Laravel
@if(auth()->check())
<!-- Laravel dynamic content -->
@else
<iframe src="{{ config('typo3.frontend_url') }}/homepage"></iframe>
@endif
API-Driven Integration
// Fetch TYPO3 news via API
$news = Http::get(config('typo3.api_url') . '/news')->json();
return view('blog.index', compact('news'));
Shared Authentication
fe_users table.league/oauth2-server).Asset Management
fileadmin/ as a Laravel storage symlink:
ln -s /path/to/typo3/fileadmin public/typo3-assets
filesystem.php:
'disks' => [
'typo3_assets' => [
'driver' => 'local',
'root' => public_path('typo3-assets'),
],
],
Routing Overrides
.html URLs:
Route::get('/{page}.html', function ($page) {
return redirect()->away(config('typo3.frontend_url') . "/$page.html");
});
Caching Conflicts
/page.html?nocache=1.Cache::forget() for API responses.CSRF Token Mismatches
// app/Http/Middleware/VerifyCsrfToken.php
protected $except = [
'typo3/*',
];
Session Inconsistencies
// In a middleware
session(['typo3' => $_SESSION['fe_typo_user']]);
URL Generation Issues
typolink generates URLs like /?id=123. Use Laravel’s Url::to() for consistency:
// Convert TYPO3 ID to Laravel route
$url = route('typo3.page', ['id' => 123]);
/typo3conf/log/ for errors.dd($_SESSION) to compare sessions.GET /typo3/api/news?format=json
Custom TYPO3 Extensions
EXT:laravel_bridge) to expose Laravel data to TYPO3’s FE.Webhook Integration
// TYPO3 Extension Hook
$client = new \GuzzleHttp\Client();
$client->post('http://laravel-app/webhooks/typo3', [
'json' => ['event' => 'page_created', 'data' => $row]
]);
Laravel Service Providers
// app/Providers/Typo3ServiceProvider.php
public function register() {
$this->app->singleton(Typo3Client::class, function () {
return new Typo3Client(config('typo3.api_url'));
});
}
How can I help you explore Laravel packages today?