morilog / widgetify
A powerful laravel widget package. capsulate ui componenet as widget. similar to Yii widgets
Installs: 2 319
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/support: >=5.1
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-10-21 20:41:33 UTC
README
Laravel widget package for Laravel >= 5.1
Installation
composer require morilog/widgetify
Register in Laravel
-
Add
Morilog\Widgetify\WidgetifyServiceProvider
toconfig/app.php
providers array -
If you need to Facade for rendering widgets, add bellow in
config/app.php
aliases array :
'Widgetify' => Morilog\Widgetify\Facades\Widgetify::class
- For publish Widgetify config file, run this command:
php artisan vendor:publish --provider="Morilog\Widgetify\WidgetifyServiceProvider"
Usage
Create new widget
For creating new widget you must create a class that extended Morilog\Widgetify\Widget
and implement handle()
method.
<?php namespace App\MyWidgets; use Morilog\Widgetify\Widget; class SimpleWidget extends Widget { public function handle() { $latestPosts = Post::take(10)->get(); return view('path.to.view.file', compact('latestPosts')); } }
Registering Widget
- Add your widget to
widgets
array inconfig/widgetify.php
file:
'widgets' => [ 'simple_widget' => App\MyWidgets\SimpleWidget::class ]
Rendering Widgets
With blade @widgetify
directive:
// views/sidebar.blade.php <div class="col-sm-3"> @widgetify('simple_widget') </div>
OR with configs:
// views/sidebar.blade.php <div class="col-sm-3"> @widgetify('simple_widget', ['key' => 'value', 'key2' => 'value']) </div>
OR with Widgetify
Facade:
// views/sidebar.blade.php <div class="col-sm-3"> {!! Widgetify::render('simple_widgets') !!} </div>
Using cache
// views/default.blade.php <div class="col-sm-4"> {!! Widgetify::remember('my_widget', 15, [CONFIGS]); !!} </div> <div class="col-sm-4"> @cached_widgetify('my_widget', 15, [CONFIGS]); </div>