russsiq / laravel-widget
Дополнительный функционал для компонентов Laravel 8.x.
Requires
- php: 8.0.*
- illuminate/support: 8.*
Requires (Dev)
- mockery/mockery: 1.4.*
- phpunit/phpunit: 9.5.*
This package is auto-updated.
Last update: 2021-05-21 05:32:27 UTC
README
Введение
Виджеты – обертка для стандартных компонентов Laravel, но с расширенным функционалом: валидация входящих параметров.
Виджеты поддерживают компоненты только на основе классов и при наличии обязательного отдельного шаблона представления или нескольких шаблонов.
Установка
Для добавления зависимости в новый проект на Laravel, добавьте в файле composer.json
"require": { // ... "russsiq/laravel-widget": "dev-master" }
Для подключения в уже созданный проект, используйте менеджер пакетов Composer:
composer require russsiq/laravel-widget
Если в вашем приложении включен отказ от обнаружения пакетов в директиве dont-discover
в разделе extra
файла composer.json
, то необходимо самостоятельно добавить в файле config/app.php
поставщик службы в раздел providers
:
'providers' => [ /* * Package Service Providers... */ Russsiq\Widget\WidgetServiceProvider::class, ],
Конфигурирование
Перед использованием пакета вам необходимо сверить соответствие параметра classes-namespace
конфигурационного файла с желаемым пространством имен классов ваших будущих виджетов. Для этого необходимо опубликовать конфигурационный файл в ваше приложение:
php artisan vendor:publish --provider="Russsiq\Widget\WidgetServiceProvider" --tag=config
По умолчанию этот параметр имеет значение App\View\Components\Widgets
.
По желании вы можете опубликовать шаблон, отображающий ошибки валидации входящих параметров виджета:
php artisan vendor:publish --provider="Russsiq\Widget\WidgetServiceProvider" --tag=views
Написание виджета
Генерация класса виджета и его шаблона
Чтобы создать виджет, вы можете использовать команду make:laravel-widget
Artisan. Чтобы проиллюстрировать, как использовать виджеты, мы создадим простой виджет ArticlesFeatured
:
php artisan make:laravel-widget ArticlesFeatured
Выполненная команда make:laravel-widget
поместит по умолчанию класс виджета в каталог App\View\Components\Widgets
, а его шаблон articles-featured.blade.php
в resources\views\components\widgets
.
Структура класса виджета
Сгенерированный класс виджета будет иметь следующую структуру:
<?php namespace App\View\Components\Widgets; use Russsiq\Widget\WidgetAbstract; class ArticlesFeatured extends WidgetAbstract { /** * Get the template name relative to the widgets directory. * * @var string */ protected $template = 'components.widgets.articles-featured'; /** * Create a new widget instance. * * @param array $parameters */ public function __construct(array $parameters = []) { parent::__construct($parameters); } /** * Get the validation rules that apply to the widget parameters. * * @return array */ public function rules(): array { return [ // ]; } }
Отрисовка виджета
После того, как ваш компонент был создан, он может быть отображен с использованием псевдонима тега c передачей набора необходимых вам параметров через массив parameters
:
<x-widget::articles-featured :parameters="[ 'parameter_1' => 'value_1', 'parameter_2' => 'value_2', ]" />
Удаление пакета
Для удаления пакета из вашего проекта на Laravel используйте команду:
composer remove russsiq/laravel-widget
Лицензия
laravel-widget
– программное обеспечение с открытым исходным кодом, распространяющееся по лицензии MIT.