A form rendering abstraction for Canvass.
Note: This library should be paired with a concrete implementation library such as CanvassPaint\Twig or CanvassPaint\Blade.
This can be installed via composer:
composer require canvass/canvass-paint
Create an implementation of \CanvassPaint\Contract\RenderFunction
that incorporates an html rendering library.
Below is the CanvassPaint\Twig implementation:
namespace CanvassPaint\Twig;
class RenderFunction implements \CanvassPaint\Contract\RenderFunction
{
/** @var \Twig\Environment */
private $twig;
public function __construct(\Twig\Environment $twig)
{
$this->twig = $twig;
}
public function render($data)
{
return $this->twig->render(
'/form/form.twig',
$data
);
}
public function getTwigEnvironment(): Environment
{
return $this->twig;
}
}
The Blade and Twig libraries can help guide you on how to set up the various field views.
Then pass the RenderFunction
to the RenderForm
action:
$action = new RenderForm(new RenderFunction());
$html = $action->render($form_id);