Laravel Widget is a class based approach for structuring portions of your views.
You can install the package via composer:
composer require chargefield/laravel-widget
php artisan make:widget ExampleWidget
or
php artisan widget:make ExampleWidget
This will generate the following files:
app/Http/Widgets/ExampleWidget.php
resources/views/widgets/example-widget.blade.php
Including a widget is as easy as using the @widget
blade directive:
@widget('ExampleWidget')
You can pass external data to the widget as an array to the second argument. It will be available in both the class and view:
@widget('ExampleWidget', ['four' => 'Four'])
All public properties and public methods are passed down to the view as their respected names.
Example
Widget Class:
namespace App\Http\Widgets;
use Chargefield\LaravelWidget\BaseWidget;
class ExampleWidget extends BaseWidget
{
public $title = 'Hello World';
public function numbers()
{
return [
'One', 'Two', 'Three', $this->four,
];
}
}
Widget Blade View:
<h1>{{ $title }}</h1>
@foreach($numbers as $number)
<p>{{ $number }}</p>
@endforeach
Output:
<h1>Hello World</h1>
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
You can run the tests with:
vendor/bin/phpunit
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email support@chargefield.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.