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: | 2024-11-23 03:04:17 |
Package Statistics | |
---|---|
Total Downloads: | 3,452 |
Monthly Downloads: | 26 |
Daily Downloads: | 0 |
Total Stars: | 9 |
Total Watchers: | 1 |
Total Forks: | 6 |
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