akrabat/rka-slim-zendform

Slim Framework ZF2 form service provider

Maintainers

👁 akrabat

Package info

github.com/akrabat/rka-slim-zendform

Homepage

pkg:composer/akrabat/rka-slim-zendform

Statistics

Installs: 51

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0 2015-05-03 21:22 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 49b6c7ad3b5a442549ce0a9247aa966f901feb8c

frameworkformzf2providerslimzend-form

This package is auto-updated.

Last update: 2026-06-26 04:46:05 UTC


README

This service provider integrates Zend\Form into a Slim 3 application.

Usage

  1. composer require slim/twig-view

  2. composer require akrabat/rka-slim-zendform

  3. Register Twig-View as per the README

  4. Register the FormProvider in index.php:

     $app->getContainer()->register(new RKA\Form\FormProvider);
    
  5. Create a form:

     <?php
     namespace RKA;
    
     use Zend\Form\Form;
     use Zend\InputFilter\InputFilterProviderInterface;
    
     class ExampleForm extends Form implements InputFilterProviderInterface
     {
     public function init()
     {
     $this->add([
     'name' => 'email',
     'options' => [
     'label' => 'Email address',
     ],
     'attributes' => [
     'id' => 'email',
     'class' => 'form-control',
     'required' => 'required',
     ],
     ]);
    
     $this->add([
     'name' => 'submit',
     'type' => 'button',
     'options' => [
     'label' => 'Go!',
     ],
     'attributes' => [
     'class' => 'btn btn-default',
     ],
     ]);
     }
    
     public function getInputFilterSpecification()
     {
     return [
     'email' => [
     'required' => true,
     'filters' => [
     ['name' => 'StringTrim'],
     ['name' => 'StripTags'],
     ],
     'validators' => [
     ['name' => 'EmailAddress'],
     ],
     ],
     ];
     }
     }
    
  6. Example action:

     $app->map(['GET', 'POST'], '/', function ($request, $response) {
     $sm = $this['serviceManager'];
     $formElementManager = $sm->get('FormElementManager');
     $form = $formElementManager->get("RKA\ExampleForm");
    
     if ($request->isPost()) {
     $data = $request->post();
     $form->setData($data);
     $isValid = $form->isValid();
     if ($form->isValid()) {
     echo "Success!";
     exit;
     }
     }
    
     $this['view']->render($response, 'home.twig', array(
     'form' => $form
     ));
     return $response;
     });