chargefield / laravel-widget
Widget based approach for structuring portions of your views.
Requires
- php: >=7.1.0
- illuminate/console: ^6.0|^7.0
- illuminate/support: ^6.0|^7.0
Requires (Dev)
- matt-allan/laravel-code-style: ^0.4.0
- mockery/mockery: ^1.2
- orchestra/testbench: ^4.2
README
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.