| Package Data | |
|---|---|
| Maintainer Username: | klisl | 
| Maintainer Contact: | ksl80@ukr.net (Sergey Klimenchuk) | 
| Package Create Date: | 2017-07-01 | 
| Package Last Update: | 2018-04-03 | 
| Language: | PHP | 
| License: | MIT | 
| Last Refreshed: | 2025-10-27 03:01:14 | 
| Package Statistics | |
|---|---|
| Total Downloads: | 3,708 | 
| Monthly Downloads: | 11 | 
| Daily Downloads: | 0 | 
| Total Stars: | 9 | 
| Total Watchers: | 0 | 
| Total Forks: | 5 | 
| Total Open Issues: | 0 | 
Пакет для удобного создания и использования виджетов в Laravel-5
@widget('menu')
Установка пакета с помощью 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