morilog/widgetify

一个强大的Laravel小部件包。将UI组件封装为小部件。类似于Yii小部件

v1.0.0 2018-01-22 07:31 UTC

This package is auto-updated.

Last update: 2024-09-21 20:28:03 UTC


README

Laravel 5.1及以上版本的Laravel小部件包

安装

composer require morilog/widgetify

在Laravel中注册

  • Morilog\Widgetify\WidgetifyServiceProvider添加到config/app.php的providers数组中

  • 如果你需要渲染小部件的Facade,请在config/app.php的aliases数组中添加以下内容

	'Widgetify' => Morilog\Widgetify\Facades\Widgetify::class
  • 为了发布Widgetify配置文件,运行以下命令
php artisan vendor:publish --provider="Morilog\Widgetify\WidgetifyServiceProvider"

使用

创建新小部件

为了创建新小部件,你必须创建一个继承自Morilog\Widgetify\Widget并实现handle()方法的类。

<?php
namespace App\MyWidgets;

use Morilog\Widgetify\Widget;

class SimpleWidget extends Widget
{
	public function handle()
	{
		$latestPosts = Post::take(10)->get();

		return view('path.to.view.file', compact('latestPosts'));
	}
}

注册小部件

  • 将你的小部件添加到config/widgetify.php文件中的widgets数组中
	'widgets' => [
		'simple_widget' => App\MyWidgets\SimpleWidget::class
	]

渲染小部件

使用blade的@widgetify指令

// views/sidebar.blade.php
<div class="col-sm-3">
	@widgetify('simple_widget')
</div>

或者使用配置

// views/sidebar.blade.php
<div class="col-sm-3">
	@widgetify('simple_widget', ['key' => 'value', 'key2' => 'value'])
</div>

或者使用Widgetify Facade

// views/sidebar.blade.php
<div class="col-sm-3">
	{!! Widgetify::render('simple_widgets') !!}
</div>

使用缓存

// views/default.blade.php
<div class="col-sm-4">
    {!! Widgetify::remember('my_widget', 15, [CONFIGS]); !!}
</div>
<div class="col-sm-4">
    @cached_widgetify('my_widget', 15, [CONFIGS]);
</div>