venne/widgets

dev-master / 3.0.x-dev 2015-03-03 07:22 UTC

README

Installation

The best way to install Venne/Widgets is using Composer:

composer require venne/widgets:@dev

Automatic usage

Register widgets

Use tag venne.widget:

services:
	myControlFactory:
		class: App\MyControlFactory
		tags: [venne.widget: 'myWidget']

Use widgets in presenters/controls as global component

class ExamplePresenter extends Nette\Application\UI\Presenter
{
	use Venne\Widgets\WidgetsControlTrait;
}

Template:

...
{control myWidget}
...

Manual usage

Register some widgets

$widgetManager = new Venne\Widgets\WidgetManager($systemContainer);
$widgetManager->addWidget('widget1', function() {
	return new MyComponent;
});
$widgetManager->addWidget('widget2', new MyFormFactory);
$widgetManager->addWidget('widget3', 'app.myFormFactory'); // service in system container

Create instance and use it

if ($widgetManager->hasWidget('widget1')) {
	$widget = $widgetManager->getWidget('widget1');
	$widget->render();
}