User Interface
Agile UI Demo v5.0-dev
Interactivity
Business Model
Persistence
PHP is a server-side language. That prompted us to implement server-side UI actions. They are very easy to define - no need to create any routes or custom routines, simply define a PHP closure like this:
$button = Button::addTo($owner, ['Click for the greeting!']);
$button->on('click', static function () {
return 'Hello World!';
});
A component of Agile Toolkit (callback) enables seamless communication between the frontend components (which are often written in VueJS) and the backend. We also support seamless reloading of any UI widget:
$seg = View::addTo($owner, ['ui' => 'segment']);
Text::addTo($seg)->set('Number of buttons: ');
$paginator = Paginator::addTo($seg, [
'total' => 5,
'reload' => $seg,
'urlTrigger' => 'count',
]);
View::addTo($seg, ['ui' => 'divider']);
$count = $seg->getApp()->tryGetRequestQueryParam('count') ?? 1;
for ($i = 1; $i <= $count; ++$i) {
Button::addTo($seg, [(string) $i]);
}
Number of buttons:
This demo also shows you how to create composite views. The '$seg' above contains text, paginator, divider and some buttons. Interestingly, Paginator view also consists of buttons and Agile Toolkit renders everything reliably.