klisl / laravel-widgets
Laravel-5 中使用小部件的包
1.7
2018-04-03 13:10 UTC
Requires
- php: >=5.4.0
- laravel/framework: ~5.3
This package is not auto-updated.
Last update: 2024-09-19 06:04:11 UTC
README
用于在 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