PHPackages                             fousheezy/form - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fousheezy/form

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fousheezy/form
==============

ZF2 / Doctrine integrated form generator

1555PHP

Since Jan 7Pushed 11y ago1 watchersCompare

[ Source](https://github.com/fousheezy/form)[ Packagist](https://packagist.org/packages/fousheezy/form)[ RSS](/packages/fousheezy-form/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Fousheezy Form
==============

[](#fousheezy-form)

About
=====

[](#about)

This ZF2 module is built with the intention of converting a Doctrine Entity into a \\Zend\\Form\\Form object and then rendering it on the page.

Installation
============

[](#installation)

- Install via composer

- add the following to your composer.json file: `"fousheezy/form": "dev-master"`
- add the module to your zend project (from ZF2's root) edit `config/application.config.php` and add `'FzyForm'` to the `'modules'` array

Services
========

[](#services)

- **FzyForm\\Render** returns the rendering service of type: `\FzyForm\Service\Render`

View Helpers
============

[](#view-helpers)

- **fzyForm** accepts a \\Zend\\Form\\Form element and an optional second argument to override the form's options. If no arguments are provided, it returns a `\FzyForm\View\Helper\FzyForm` object

AutoForm
========

[](#autoform)

Basics
------

[](#basics)

The majority of configuration on how your form should be output is described on the Doctrine Entity itself within the Zend Form's annotations. All the configurations are contained with the Form Annotation's "Options"

For example:

```
use Doctrine\ORM\Mapping as ORM;
use Zend\Form\Annotation;

/**
 * Class User
 * @package Application\Entity\Base
 * @ORM\Entity
 * @ORM\Table(name="user")
 * @Annotation\Options({
 *      "autorender": {
 *          "ngModel": "user",
 *          "fieldsets": {
 *              {
 *                  "name": \FzyForm\Annotation\FieldSet::DEFAULT_NAME,
 *                  "legend": "Basic Info"
 *              }
 *          }
 *      }
 * })
 *
 */

```

This module looks for configuration data within the "autorender" key in `@Annotation\Options`

- **ngModel** defines the name of the container which will house the form element values in AngularJS.
- **fieldsets** defines an array of fieldsets this form contains.

A single fieldset consists of at least a "name" value. You can optionally define rows within a fieldset like so

```
*      "autorender": {
 *          "ngModel": "user",
 *          "fieldsets": {
 *              {
 *                  "name": \FzyForm\Annotation\FieldSet::DEFAULT_NAME,
 *                  "legend": "Basic Info"
 *                  "rows": {
 *                     {"name": "nameRow"},
 *                     {"name": "emailRow"}
 *                  }
 *              }
 *          }
 *      }

```

Which will order the name row first and the email row second within the default fieldset.

Class properties can be annotated to specify which fieldset or row they belong in, mapping them by name.

```
/**
     * @ORM\Column(type="string", length=255, name="name")
     *
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Attributes({
     *  "data-ng-disabled": "saving",
     *  "required": true
     * })
     * @Annotation\Options({
     *      "label":"Name",
     *      "autorender": {
     *          "ngModel": "name"
     *      }})
     * @Annotation\ErrorMessage("Please provide a name")
     *
     * @var string
     */
    protected $name;

    /**
     * @ORM\Column(type="string", length=255)
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Attributes({
     *  "data-ng-disabled": "saving"
     * })
     * @Annotation\Options({
     *      "label":"Email",
     *      "autorender": {
     *          "ngModel": "email"
     *      }})
     * @Annotation\AllowEmpty()
     * @Annotation\Validator({"name": "EmailAddress"})
     * @Annotation\ErrorMessage("Please provide an email")
     * @var string
     */
    protected $email;

```

Similarly, in the property definitions, you can add the "autorender" option to the Zend Forms Annotation\\Options docblock to specify:

- **ngModel** the property this form element will be bound to in the Angular Scope (in this case `user.name` and `user.email`)
- **template** the view partial to use to render this element.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/ced487fe24873dd2183bf1d34e663acf5a07673ea0a96569c0365679b90b8294?d=identicon)[fousheezy](/maintainers/fousheezy)

---

Top Contributors

[![foush](https://avatars.githubusercontent.com/u/708458?v=4)](https://github.com/foush "foush (24 commits)")

### Embed Badge

![Health badge](/badges/fousheezy-form/health.svg)

```
[![Health](https://phpackages.com/badges/fousheezy-form/health.svg)](https://phpackages.com/packages/fousheezy-form)
```

###  Alternatives

[imanghafoori/laravel-video

A laravel package to stream video content.

28355.5k](/packages/imanghafoori-laravel-video)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
