PHPackages                             pascalkleindienst/form-list-generator - 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. [Admin Panels](/categories/admin)
4. /
5. pascalkleindienst/form-list-generator

ActiveLibrary[Admin Panels](/categories/admin)

pascalkleindienst/form-list-generator
=====================================

Small library to easily display data as a table-list or a form. Its main application area is in admin/backend applications.

v1.3.0(8y ago)019MITPHPPHP ~5.5|~5.6|~7.0

Since Jul 18Pushed 8y ago1 watchersCompare

[ Source](https://github.com/PascalKleindienst/FormListGenerator)[ Packagist](https://packagist.org/packages/pascalkleindienst/form-list-generator)[ Docs](https://github.com/PascalKleindienst/FormListGenerator)[ RSS](/packages/pascalkleindienst-form-list-generator/feed)WikiDiscussions master Synced yesterday

READMEChangelog (5)Dependencies (5)Versions (6)Used By (0)

FormListGenerator
=================

[](#formlistgenerator)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7cbd73b6cae18433bc1ad9dbfddf4bbe8e7c4a05730090247d996e9457be4a96/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f70617363616c6b6c65696e6469656e73742f666f726d2d6c6973742d67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pascalkleindienst/form-list-generator)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/cc71b6b51e85ddd113424c04cd05dacab509ba663f85d9dfe3b67eb8d4707ed8/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f50617363616c4b6c65696e6469656e73742f466f726d4c69737447656e657261746f722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/PascalKleindienst/FormListGenerator)[![Coverage Status](https://camo.githubusercontent.com/97469dfc74ba70a906c660390d2d436a8f17da6dc7ac9fe5e7556464dc2d3de7/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f50617363616c4b6c65696e6469656e73742f466f726d4c69737447656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/PascalKleindienst/FormListGenerator/code-structure)[![Quality Score](https://camo.githubusercontent.com/8c16297397646079687e495154ffb7f84ca829a6a4fcb85be549d6d76dda3872/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f50617363616c4b6c65696e6469656e73742f466f726d4c69737447656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/PascalKleindienst/FormListGenerator)[![Code Style](https://camo.githubusercontent.com/7c9a57bf7feca9b723d86a5633a5318b67db8d97b200cea2e827e0a810816d18/68747470733a2f2f7374796c6563692e696f2f7265706f732f39343434313338352f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/94441385)[![Total Downloads](https://camo.githubusercontent.com/53c792f525135ad3c31c65ad49c1e3560f85b0d8b1f42e312212e7dc16f4e52a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70617363616c6b6c65696e6469656e73742f666f726d2d6c6973742d67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pascalkleindienst/form-list-generator)

FormListGenerator is a small library to easily display data as a table-list or a form. Its main application area is in admin/backend applications.

Install
-------

[](#install)

Via Composer

```
$ composer require pascalkleindienst/form-list-generator
```

Usage
-----

[](#usage)

```
use PascalKleindienst\FormListGenerator\Generators\ListGenerator;
use PascalKleindienst\FormListGenerator\Generators\FormGenerator;
use PascalKleindienst\FormListGenerator\Support\Config;

# set the root path of the application and optionally a baseUrl
Config::set([
    'root'    => dirname(__FILE__),
    'baseUrl' => 'http://example.com'
]);

// Init Generators with yaml config
$list = new ListGenerator('list.yaml');
$form = new FormGenerator('form.yaml');

// Alternatively, we can use the load method (useful when you put the generator class in a container)
$list = new ListGenerator();
$form = new FormGenerator();
$list = $list->load('list.yaml');
$form = $form->load('form.yaml');

// Render List
# some example date, usually fetched from your DB
$listData = [
    [
        'id'         => 1,
        'full_name'  => 'John Doe',
        'age'        => 42,
        'created_at' => time(),
        'content'    => 'lorem ipsum',
        'recursive'  => [ # accessed via dot notation in yaml => recursive.test or recursive.foo
            'test' => 'Recursive Testing',
            'foo'  => 'Foo'
        ]
    ],
    [
        'id'         => 2,
        'full_name'  => 'John Doe',
        'age'        => 42,
        'created_at' => time(),
        'content'    => 'lorem ipsum',
        'recursive' [ # accessed via dot notation in yaml => recursive.test or recursive.foo
            'test' => 'Recursive Testing',
            'foo'  => 'Foo'
        ]
    ]
];
$list->render($listData);

// Render the form
$formData = [
    'id'         => 1,
    'full_name'  => 'John Doe',
    'age'        => 42,
    'created_at' => time(),
    'content'    => 'lorem ipsum',
    'recursive' [ # accessed via dot notation in yaml => recursive.test or recursive.foo
        'test' => 'Recursive Testing',
        'foo'  => 'Foo'
     ]
];
$form->render($formData);
```

### Configuration

[](#configuration)

See [docs/form.md](docs/form.md) and [docs/list.md](docs/list.md)

### Localization

[](#localization)

You're also able to translate your message to another language. The only thing one must do is to set the attribute translator as a callable that will handle the translation:

```
$form->setTranslator('gettext');
$list->setTranslator('gettext');
```

The example above uses `gettext()` but you can use any other callable value, like `[$translator, 'trans']` or `your_custom_function()`.

Testing
-------

[](#testing)

```
$ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Pascal Kleindienst](https://github.com/PascalKleindienst)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity62

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~7 days

Total

5

Last Release

3191d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/367c097ec42aec6ed007853fbec64d138734606e71574341f970e273b3efe7fd?d=identicon)[PascalKleindienst](/maintainers/PascalKleindienst)

---

Top Contributors

[![PascalKleindienst](https://avatars.githubusercontent.com/u/3470866?v=4)](https://github.com/PascalKleindienst "PascalKleindienst (71 commits)")

---

Tags

backendcomposer-packagephp-librarybackendFormsListsPascalKleindienstFormListGenerator

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/pascalkleindienst-form-list-generator/health.svg)

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[yiister/yii2-gentelella

Free admin template for backend

277278.3k5](/packages/yiister-yii2-gentelella)[kiwicommerce/module-cron-scheduler

Easily set up and manage cron jobs from the backend with a beautiful and managed timeline feature. Find the actual load on CPU/Memory by cron job execution.

74603.3k](/packages/kiwicommerce-module-cron-scheduler)[sebastienheyd/boilerplate

Laravel Boilerplate based on AdminLTE 3 with blade components, user management, roles, permissions, logs viewer, ...

28618.2k3](/packages/sebastienheyd-boilerplate)[sandstorm/crudforms

Create easy CRUD forms for Domain Models in Flow and Neos CMS

2220.0k](/packages/sandstorm-crudforms)

PHPackages © 2026

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