Usage

Entities and Forms
Limpid provides you a FormGenerator system that helps you create forms around entities fast and easy.
First of all, any prototype form should be stored under YourModule/FormPrototype directory and any prototype you create must implements FormBuilderInterface
    
    namespace app\HelloLimpidModule\FormPrototype;

    use framework\core\Forms\FormBuilder;
    use framework\core\Forms\FormBuilderInterface;

    class CategoryForm implements FormBuilderInterface
    {

        public function buildFormPrototype(FormBuilder $builder)
        {
            $builder->addInput('title', 'text')
                    ->addInput('designation', 'textarea');

            return $builder;
        }
    }
                
Your prototype should implements FormBuilderInterface and the buildFormPrototype function should return the $builder object.
After prepearing your prototype, call it in your controller and give it the related object as parameter:
    
    //---inside your controller (ex: DefaultController)
    public function addCommand(){
        $category = new Category();//---create your entity*
        //---or you can give the builder a filled entity
        //---ex: $category = $this->getRepository('HelloLimpid:Category')->find(1);
        $form = $this->buildForm('HelloLimpid:Category', $category);//---give it to the form builder system with the prototype

        if($form->isPosted()){//---if form is submitted
            //---After submitting the form the entity is now filled with given values from user and can be stored in database
            //---call entityManager and persist entity
            $em = $this->getEntityManager();

            $em->persist($category);
            $em->flush();

            $this->redirectToRoute('route_name');//---redirect to any route you want
        }

        $this->paintView('HelloLimpid:category/add.html.twig', array(
            'form' => $form,//---pass the form to the view and render it
        ));
    }
                
As you can see you don't need to worry about the attributes of the entity, after the submit the form will parse the inputs and fill the entity's attribute with the related input. Making your life easy :).
Ok, now let's see how to render this form.
You have two methods to display your form:
The first (and simple) one:
   
      {# call this extension inside your view #}   
      {# this extension will display the whole form #}
      {{ form_render(form) }} 

Or if you want to customize your form you can display each input by it's name using {{ form_control() }} extension and don't forget to call {{ form_begin(form) }} and {{ form_close(form) }} to open and close the form.
        //----in your add.html.twig view
        <h2>Creation</h2>
        {{ form_begin(form) }}
            <div class="form-group">
                <label>Title:
                    {{ form_control(form, 'title', {'class': 'form-control', 'required': 'required'}) }}{# you can any attribute to your input #}
                </label>
            </div>
            <br>
            <div class="form-group">
                <label>Designation:
                    {{ form_control(form, 'designation', {'class': 'form-control', 'required': 'required'}) }}
                </label>
            </div>
            <button type="submit" class="btn btn-primary">Add category</button>
        {{ form_close(form) }}