Skip to content

chargefield/laravel-widget

Repository files navigation

Laravel Widget

Latest Stable Version Total Downloads License

Laravel Widget is a class based approach for structuring portions of your views.

Installation

You can install the package via composer:

composer require chargefield/laravel-widget

Usage

Artisan Command

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

Blade Directive

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'])

Widget Data

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>

Testing

You can run the tests with:

vendor/bin/phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email support@chargefield.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Widget based approach for structuring portions of your views.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages