klisl/laravel-widgets

Laravel-5 中使用小部件的包

1.7 2018-04-03 13:10 UTC

This package is not auto-updated.

Last update: 2024-09-19 06:04:11 UTC


README

Laravel 5 License

用于在 Laravel-5 中方便地创建和使用小部件的包

  • 简洁的语法 - 通过简单的指令 @widget 调用任何小部件,其中第一个参数是部件名称,例如
@widget('menu')
  • 简单的小部件创建规则。
  • 仅在直接请求小部件时创建小部件对象。
  • 只包含最必要的功能,考虑到 Laravel-5.4 的架构开发。

安装

使用 Composer 安装包。

composer require klisl/laravel-widgets

如果 Laravel 版本小于 5.5,请将以下内容添加到项目中的 config/app.php 文件的 providers 数组末尾

Klisl\Widgets\WidgetServiceProvider::class,

对于 >= 5.5 的版本,可以跳过此步骤。

之后,在控制台中运行发布所需资源的命令

php artisan vendor:publish --provider="Klisl\Widgets\WidgetServiceProvider"

使用方法

config\widgets.php 文件中有一个数组,其中键是需要创建的小部件的名称,值是带命名空间的小部件类名称。例如

'test' => 'App\Widgets\TestWidget'

创建自己的小部件类需要在 app\Widgets 文件夹中创建。小部件模板放置在 app\Widgets\views 文件夹中。

小部件类必须具有相应的命名空间:namespace App\Widgets。同时,小部件类必须包含 ContractWidget 接口并实现其方法 execute()。如果小部件需要从控制器获取数据等(通过模板传递),则必须为小部件类提供一个构造函数以接收参数数组。

示例

最小化小部件类的示例

<?php

namespace App\Widgets;

use Klisl\Widgets\Contract\ContractWidget;

class TestWidget implements ContractWidget{
	
	public function execute(){
				
		return view('Widgets::test');
		
	}	
}

此小部件的模板文件 test.blade.php(包含任意内容)应位于 app\Widgets\views 文件夹中。

调用此小部件(从所需控制器的模板中调用)

@widget('test')

传递参数的示例

<?php

namespace App\Widgets;

use Klisl\Widgets\Contract\ContractWidget;

class TestWidget implements ContractWidget{
	
	public $num;
		
	public function __construct ($data){
		$this->num = $data['num'];
	}
		
	public function execute(){
				
		return view('Widgets::test', [
			'num' => $this->num
		]);
		
	}	
}

调用此小部件并传递参数进行处理

@widget('test', ['num' => 5])

app\Widgets 目录中已经存在一个测试小部件。您可以根据它创建自己的小部件。

我的博客: klisl.com