canvass/canvass-paint

A form rendering library

v1.02.00 2020-12-16 18:11 UTC

This package is auto-updated.

Last update: 2024-05-17 01:50:29 UTC


README

A form rendering abstraction for Canvass.

Note: This library should be paired with a concrete implementation library such as CanvassPaint\Twig or CanvassPaint\Blade.

Installation

This can be installed via composer:

composer require canvass/canvass-paint

Creating a Different Implementation

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;
    }
}

Views

The Blade and Twig libraries can help guide you on how to set up the various field views.

RenderFunction

Then pass the RenderFunction to the RenderForm action:

$action = new RenderForm(new RenderFunction());

$html = $action->render($form_id);