Download the PHP package lukeed/lumen-theme without Composer
On this page you can find all versions of the php package lukeed/lumen-theme. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package lumen-theme
Lumen Theme
Add theming support to your Lumen 5.* projects.
For Laravel support, go to Laravel Theme.
Features
- Custom theme locations
- Support for theme inheritence with theme fallback
- Theme assets loading
- Artisan console commands
Install
Require it via terminal like so:
Or add the package to your composer file:
Add a new service provider and optional facade to your bootstrap/app.php
file:
Configuration
theme.path
Type: string
Default:
public/themes
The path to the themes
directory, where all themes should live.
To change this value, you may either create a custom config/theme.php
file and load it inside bootstrap/app.php
or you may set the value directly via the config()
helper anywhere inside your application.
OR
Creating a Theme
Every theme directory must contain a views
folder and a theme.json
file, which contains descriptive information about the theme.
The name
, author
and directory
fields are required.
The directory
value must match the name of the theme directory; eg: public/themes/theme-folder
.
If your theme is meant to extend or inherit another theme's views, include the directory
name "parent theme" as the parent
value; eg: parent-folder
.
View Hierarchy
Given the example:
The currently active theme will be scanned for a home.blade.php
.
If there is a parent
attached to the theme, its directory will be scanned next.
Lastly, Lumen's view.paths
config value will searched. By default, this is resources/views
.
Usage
The theme.path
directory will be scanned for all available themes.
If only one theme is found, it will automatically be selected as the active theme. To manually select a different theme, you may use the set
method which accepts a directory
value.
Then you call views like you usually do in laravel:
This will firstly check if there is a home.blade.php in current theme directory. If none is found then it checks parent theme, and finally falls back to default laravel views location.
You can also inject theme instance using ThemeInterface.
Available methods
Here's the list of methods you can access:
Artisan commands
Get a table of all found themes:
Create a theme directory with config file:
Changelog
Please see CHANGELOG for more information what has changed recently.
TODO
- Contact me for ideas