lukeed / lumen-theme
为您的 Lumen 5.* 项目添加主题支持
Requires
- php: >=5.5.9
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: 3.0.*
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-20 18:18:34 UTC
README
为您的 Lumen 5.* 项目添加主题支持。
对于 Laravel 支持,请访问 Laravel Theme。
功能
- 自定义主题位置
- 支持主题继承,并提供回退机制
- 主题资源加载
- Artisan 控制台命令
安装
在终端中按照以下方式要求它
$ composer require lukeed/lumen-theme
或者将包添加到您的 composer 文件中
"lukeed/lumen-theme": "1.*"
在您的 bootstrap/app.php
文件中添加新的服务提供者和可选外观
// Service provider $app->register(Lukeed\Theme\ThemeServiceProvider::class); // Facade class_alias(Lukeed\Theme\Facade\Theme::class, 'Theme');
配置
theme.path
类型:字符串
默认:
public/themes
这是所有主题应存在的 themes
目录的路径。
要更改此值,您可以在 bootstrap/app.php
中加载自定义的 config/theme.php
文件,或者您可以在应用程序的任何地方直接通过 config()
辅助函数设置此值。
// bootstrap/app.php config(['theme.path' => realpath(base_path('public/custom/path/themes'))]);
或者
// config/theme.php return [ 'path' => realpath(base_path('public/custom/path/themes'))]) ]; // bootstrap/app.php $app->configure('theme');
创建一个主题
每个主题目录 必须 包含一个 views
文件夹和一个 theme.json
文件,该文件包含有关主题的描述性信息。
{ "name": "Theme name", "author": "Author Name", "description": "Default theme description", "version": "1.0", "directory": "theme-folder", "parent": null }
name
、author
和 directory
字段是 必需的。
directory
的值必须与主题目录的名称匹配;例如:public/themes/theme-folder
。
如果您的主题旨在扩展或继承其他主题的视图,请将 "parent theme" 作为 parent
的值包含在 directory
名称中;例如:parent-folder
。
视图层次结构
给定以下示例
view('home');
将扫描当前活动主题以查找 home.blade.php
。
如果有附加到主题的 parent
,则接下来将扫描其目录。
最后,将搜索 Lumen 的 view.paths
配置值。默认情况下,这是 resources/views
。
用法
将扫描 theme.path
目录以查找所有可用主题。
如果只找到一个主题,它将自动被选为活动主题。要手动选择不同的主题,您可以使用接受 directory
值的 set
方法。
Theme::set('theme-folder');
然后您可以像通常在 Laravel 中一样调用视图
view('home', []);
这将首先检查当前主题目录中是否有 home.blade.php。如果没有找到,它将检查父主题,最后将回退到默认 Laravel 视图位置。
您还可以使用 ThemeInterface 注入主题实例。
use lukeed\Theme\Contracts\ThemeInterface; private $theme; public function __construct(ThemeInterface $theme) { $this->theme = $theme }
可用方法
以下是您可以访问的方法列表
// Activate/set theme Theme::set('theme-namespace'); // Get all available themes as an array Theme::all(); // Get currently active Theme::get(); // Get theme by namespace Theme::get('specific-namespace'); // Override default theme path Theme::setDefaultThemePath('new/path/to/themes'); // Check if theme exists Theme::has('theme-namespace'); // Render theme path URL theme_url('assets/style.css');
Artisan 命令
获取所有找到的主题的表
$ php artisan theme:list +------------------+-------------+------------+ | Name | Author | Namespace | +------------------+-------------+------------+ | Bootstrap theme | Karlo Mikus | bootstrap | | Default theme | Test Author | default | | Foundation theme | Lorem Ipsum | foundation | | Test theme | Dolor Sitha | test | +------------------+-------------+------------+
创建带有配置文件的主题目录
$ php artisan theme:make Template name: > Theme name Template author: > Firstn Lastn Theme created succesfully!
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
待办事项
- 与我联系以获取想法