Weave 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

jungi/theme-bundle

JungiThemeBundle adds flexible theme management to Symfony/PHP applications, letting you define multiple themes, use inheritance, override templates and assets, and select the active theme through configuration or custom resolvers.

View on GitHub
Deep Wiki
Context7

jungi/theme-bundle provides a lightweight foundation for organizing and switching themes in PHP applications. It centralizes theme configuration and resolves templates and assets from the active theme, helping keep presentation logic separate from application code.

  • Register and configure multiple themes
  • Switch themes at runtime
  • Resolve templates and asset paths per theme
  • Framework-friendly integration
  • Extensible, service-oriented design
Frequently asked questions about Theme Bundle
Does JungiThemeBundle work with Laravel?
No. JungiThemeBundle is a Symfony2 and Symfony3 bundle built around AppKernel registration, DI container service definitions, and kernel.request listeners for theme resolution. Laravel has no bundle abstraction, and its service providers, view finder, and middleware pipeline share no contracts with Symfony's equivalents. Composer would install it into a Laravel app, but it would be an inert dependency that nothing discovers or uses.
How do I install jungi/theme-bundle in a Laravel application?
You can run composer require jungi/theme-bundle, but installation is not integration. There is no Laravel service provider, facade, middleware, or view or asset hook, so the package will never activate. It also pins legacy Symfony 2.x components that can collide with packages requiring Symfony 5 or 6, so adding it mostly adds conflict risk.
Which Laravel and PHP versions does JungiThemeBundle support?
None on the Laravel side, and on the PHP side it targets the PHP 5.3 to 5.6 era that Symfony2 and Symfony3 assumed. The last release was in 2015, so scalar type declarations, return types, dynamic properties, and curly-brace offset access in PHP 7.4 and 8.x are plausible breakage points. There is no PHP 8 compatibility work and no test suite run against modern runtimes.
Is JungiThemeBundle still maintained?
No. The repository was abandoned on 2015-12-08 and archived, with no security patching, no maintained test suite, and zero dependents on Packagist. With around 4 GitHub stars and a very low opportunity score, it functions as a personal project rather than a maintained component. Treat it as a design reference, not a dependency.
What is a good Laravel alternative to JungiThemeBundle for theme switching?
Build a small internal package from Laravel primitives: a ThemeManager, a ThemeResolver contract, a ResolveTheme middleware that sets the active theme per request, and View::addNamespace plus ordered view paths for fallback. That keeps the behavior you want without archived Symfony baggage. If you are actually on Symfony, the maintained equivalent is Sylius ThemeBundle.
How do I implement theme inheritance and view fallback in Laravel without this package?
Register each theme as a view namespace and order the lookup chain so a theme's templates override its parent's before falling back to application defaults. A middleware can read the active theme from config, a domain, or a database column and bind it into the container. Asset resolution can follow the same ordering through config('view.paths') or a custom asset resolver.
What are the risks of requiring an archived Composer package like this?
Archived packages receive no security patches, no bug fixes, and no compatibility work for new PHP or framework releases. This one also pins Symfony 2.x components, which can block upgrades elsewhere in your dependency graph. Most security and licensing policies disallow archived dependencies in production, so adopt it only if you accept that risk explicitly.
Can I use JungiThemeBundle's design as a reference for my own Laravel theme package?
Yes, and that is the recommended use. Its valuable ideas are a theme registry, a request-based resolution strategy, and a fallback chain where a theme overrides a parent and ultimately the application defaults. Map those onto a service provider, a middleware, and namespaced views in Laravel. A three-to-five day spike is usually enough to validate fallback ordering and cache interaction.
How do I test theme resolution middleware in Laravel?
Bind a fake ThemeResolver in the container and assert the middleware sets the expected active theme for a given host, header, or authenticated user. Then assert view resolution picks the theme namespace before the default paths. Feature tests with custom request headers cover most real-world cases, and you should add a test that changing the selection invalidates any cached resolution.
How should I handle theme assets and per-tenant theme selection in production Laravel apps?
Resolve the theme once per request and cache the result keyed by tenant or domain so you avoid a database hit on every render. Publish each theme's assets under a distinct path and reference them through a resolver rather than hard-coded URLs. Warm the view and config caches after deploying a new theme, and always keep a fallback theme so a misconfigured tenant never renders an error page.
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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core