roland / laravel-theme-manager
Laravel 5 主题:每个主题的资产和视图文件夹。主题继承。Blade 集成等...
Requires
- php: ^7.0
- laravel/framework: ~5.5
Requires (Dev)
- phpunit/phpunit: ^7.0
This package is not auto-updated.
Last update: 2024-09-29 05:55:19 UTC
README
本包是 Laravel 的主题管理包,提供一系列工具,帮助您轻松快速地为您基于 Laravel 的项目构建主题管理系统。本包的目标是尽可能地保持灵活性,并提供一个内部使用的方法。
支持
本包支持 Blade、PHP 和 Twig 模板引擎。
功能
本包提供以下工具
- 在运行时更改主题。
- 获取主题元信息。
- 支持回退模板。
- 使用 URL 查询参数预览主题。
- 扩展主题功能。
##安装
要开始使用本包,请将以下行添加到您的 composer.json
文件中,并运行 composer update
。
"require": { "roland/laravel-theme-manager": "~1.0" }
或者,从您的终端运行 composer require
通过 Composer 包管理器安装包
composer require roland/laravel-theme-manager
服务提供者 & Facade
如果您禁用了 Laravel 的自动包发现功能,这将有所帮助。
// Service Provider Roland\Theme\ThemeServiceProvider::class, // Facade 'Theme' => Roland\Theme\Facades\Theme::class,
发布配置
大部分包都是预配置的,这样您就可以在安装后立即开始构建您的 API。您可以使用 .env
文件或 config/themes.php
来配置大部分包。
您也可以使用以下 Artisan 命令发布配置文件
php artisan vendor:publish --provider="Roland\Theme\ThemeServiceProvider"
启用或禁用包
您可以将值设置为 true 或 false 以启用或禁用包。
enable => true,
默认主题提供者
在此处您可以指定以下哪个主题提供者连接要作为您的默认提供者。
可用驱动程序:"file"
'driver' => 'file',
默认主题
在此处您可以指定默认主题。
'theme' => 'default',
主题路径
在此处您可以指定主题的路径。
'path' => base_path('resources/themes'),
##基本用法
创建主题
要创建主题,首先,将 themes
文件夹添加到您的应用 resources
文件夹中。
在 themes
文件夹中,您创建的任何带有 theme.json
文件的文件夹都代表一个主题。
文件夹结构如下
resources
└── themes
├── [Theme folder]
| └── theme.json
| └── welcome.blade.php
|
└── [Another theme folder]
└── theme.json
└── welcome.blade.php
主题信息文件(theme.json)
只有当存在名为 theme.json
的文件时,本包才识别一个文件夹为主题。
这是主题信息文件的基本结构。您可以在文件中添加任意数量的键值对,并在以后检索。
{ "theme_title": "Default theme", "theme_description": "Default theme for the theme package", "theme_uri": "https://domain.com", "theme_version": "1.0.0", "theme_license": "The MIT License (MIT)", "theme_tags": "default, simple", "theme_type": "web", "author_name": "Jon Deep", "author_email": "JonDeep@domain.com", "author_uri": "https://domain.com" }
基本方法
简单地使用当前主题显示视图(欢迎)。否则回退到(索引)。
return Theme::view(['welcome', 'index']);
在运行时设置当前主题。
return Theme::use('mytheme')->view(['welcome']);
设置当前主题并更新默认配置主题。
Theme::set('mytheme');
将 theme
参数添加到运行时预览主题。
https:///?theme=mytheme
您还可以在运行时更改主题提供者。
return Theme::driver('file')->view(['welcome']);
检查主题是否存在。
Theme::exists('mytheme');
检查所有主题。
Theme::all();
Ps:它将返回一个包含所有已安装主题的 json。
以 json
形式返回主题信息。
// Return default theme's info return Theme::info(); // Return provided theme's info return Theme::info('mytheme');
向视图传递数据。
// with() method return Theme::with(['name' => 'Victoria'])->view(['welcome']); // Alternative way return Theme::view(['welcome'], ['name' => 'Victoria']);
##高级功能
Theme::extend('riak', function($app) { return 'Riak theme driver'; }); // Chnage the theme driver from route return Theme::driver('riak');
配置中间件
- 发布包:
php artisan vendor:publish
- 在
Http/kernel.php
中添加到受保护的'theme' => \App\Http\Middleware\CheckTheme::class,
- 在路由上使用中间件
路由示例:Route::get('/', ['uses' => 'TestController@home'])->middleware('theme:ThemeName');
ps. 使用主题将允许您使用正确的Laravel view()
,当前主题:)
许可证
此软件包受MIT许可证(MIT)的许可。