Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Theme Bundle

Theme Bundle Laravel Package

sylius/theme-bundle

Sylius Theme Bundle brings theme management to Symfony apps. Define and switch themes, organize templates and assets per theme, and build storefronts with clean overrides. Part of the Sylius ecosystem, with docs included and MIT licensed.

View on GitHub
Deep Wiki
Context7

Themes management for Symfony projects.

Frequently asked questions about Theme Bundle
Can I use SyliusThemeBundle in a Laravel project, or is it strictly for Symfony/Sylius?
This bundle is designed for Symfony/Sylius and relies on Twig, Symfony’s HttpFoundation, and AssetBundle. While you *could* adapt it for Laravel (e.g., via custom service providers or Blade directives), it’s not natively supported. Laravel projects would need to rewrite core logic like theme resolution or asset pipelines. For a Laravel-native alternative, consider building a custom theme service or exploring Laravel packages like `spatie/laravel-theme` instead.
How do I install and configure SyliusThemeBundle in a Symfony project?
Install via Composer: `composer require sylius/theme-bundle`. Configure themes in `config/packages/sylius_theme.yaml` by defining paths (e.g., `sylius_theme.theme_paths`) and registering your theme directories. Use the `sylius_theme.twig_extension` in Twig templates for dynamic theme switching. The [official docs](https://github.com/Sylius/SyliusThemeBundle/tree/master/docs) provide step-by-step setup, including asset management and multi-tenancy configurations.
Does SyliusThemeBundle support multi-tenancy for SaaS platforms or marketplaces?
Yes, the bundle includes tenant-aware theme resolution, allowing you to assign different themes to users, organizations, or stores. Configure this in your `sylius_theme.yaml` under `tenant_aware_theme_resolver`. It’s particularly useful for Sylius-based eCommerce platforms or SaaS apps where branding varies by customer. For Laravel, you’d need to replicate this logic manually or integrate with tenancy packages like `stancl/tenancy`.
How does theme inheritance work in SyliusThemeBundle, and can I override parent theme templates?
The bundle supports theme inheritance, where child themes extend parent themes (e.g., a storefront theme inheriting from a base theme). Overrides are defined by placing files in the child theme’s directory with the same structure as the parent. For example, to override `base.html.twig`, create `base.html.twig` in your child theme’s `templates/` folder. This follows Symfony’s Twig template inheritance model, which may require adjustments for Blade in Laravel.
What Laravel version or Symfony version does SyliusThemeBundle support?
This bundle is built for **Symfony 5.4–6.x** and is part of the Sylius ecosystem (tested with Sylius 1.10+). It has no direct Laravel support, but if you’re using Symfony components in Laravel (e.g., via `symfony/http-kernel`), you could theoretically integrate it. Always check the [bundle’s requirements](https://github.com/Sylius/SyliusThemeBundle/blob/master/composer.json) for exact Symfony version constraints.
How do I handle assets (CSS/JS) per theme in SyliusThemeBundle?
The bundle integrates with Symfony’s AssetBundle to manage theme-specific assets. Define asset paths in your theme configuration (e.g., `sylius_theme.asset_paths`) and use Twig’s `asset()` function to reference them. For production, enable asset compilation via Webpack Encore or Symfony’s asset mapper. In Laravel, you’d need to replace AssetBundle with Laravel Mix/Vite and adapt the asset resolution logic.
Are there any performance considerations for theme switching or caching?
The bundle caches theme configurations and compiled assets by default. For dynamic theme switching, ensure your `ThemeResolver` is optimized (e.g., avoid expensive logic in `getTheme()`). In Symfony, leverage Symfony’s cache system (e.g., APCu, Redis). In Laravel, implement a custom cache driver for theme metadata or use Laravel’s cache tags. Test under load, especially if themes include heavy assets.
Can I use SyliusThemeBundle with a custom templating engine like Blade instead of Twig?
No, the bundle is tightly coupled with Twig and Symfony’s templating system. To use Blade, you’d need to rewrite the Twig extensions (e.g., `sylius_theme.twig_extension`) as Blade directives and abstract the theme resolution logic into a Laravel-compatible service. This is a high-effort task and may not be worth it unless you’re heavily invested in the bundle’s architecture.
What alternatives exist for theme management in Laravel if SyliusThemeBundle isn’t a fit?
For Laravel, consider these alternatives: **spatie/laravel-theme** (simple theme switching), **orchid/platform** (for admin panels), or **laravel-view-models** (dynamic view overrides). If you need multi-tenancy, combine a tenancy package (e.g., `stancl/tenancy`) with a custom theme service. For Symfony, **twiglabs/twig-extensions** or **liip/theme-bundle** are lighter options. Evaluate whether you need Sylius’s advanced features (e.g., asset pipelines, inheritance) before choosing.
How do I test SyliusThemeBundle in a Symfony project, including edge cases like theme conflicts?
Test theme inheritance by creating parent/child themes and verifying overrides in Twig templates. Use Symfony’s `cache:clear` to test caching behavior. For edge cases, mock the `ThemeResolverInterface` to simulate dynamic theme switching. In PHPUnit, test template rendering with `self::assertStringContainsString()` to validate overrides. For asset loading, test both development and production environments. The bundle’s tests (in the GitHub repo) serve as a reference for common scenarios.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
babenkoivan/elastic-client
innmind/static-analysis
innmind/coding-standard
datacore/hub-sdk
alengo/sulu-http-cache-bundle
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
imbo/imbo-coding-standard
visualbuilder/filament-lottie
servicioslineaonce/starter-kit
atomcoder/laravel-reorderable
irajul/filament-shadcn-theme
agtp/agtp-php
agtp/mod-php
centraldesktop/protobuf-php