PHPackages                             letkode/form-schema-bundle - 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. [Templating &amp; Views](/categories/templating)
4. /
5. letkode/form-schema-bundle

ActiveSymfony-bundle[Templating &amp; Views](/categories/templating)

letkode/form-schema-bundle
==========================

Symfony Bundle for dynamic, database-driven form schemas with extensible field types and option sources.

1.0.3(today)09↑2900%MITPHPPHP ^8.4

Since Jun 9Pushed todayCompare

[ Source](https://github.com/letkode/form-schema-bundle)[ Packagist](https://packagist.org/packages/letkode/form-schema-bundle)[ RSS](/packages/letkode-form-schema-bundle/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (20)Versions (5)Used By (0)

letkode/form-schema-bundle
==========================

[](#letkodeform-schema-bundle)

Symfony Bundle para formularios dinámicos configurables desde base de datos.

Modela formularios en una jerarquía **Form → Section → Group → Field**, con i18n dinámico, 22 tipos de campo predefinidos y extensibles, opciones desde catálogo interno o repositorios del proyecto, renders estructurales en 3 niveles y caché PSR-6 opt-in.

**Requiere** PHP 8.4 · Symfony 7.x / 8.x · Doctrine ORM ^3.4

---

Documentación
-------------

[](#documentación)

DocumentoContenido[Instalación](docs/installation.md)Composer, bundle, mapeo de entidades, migraciones[Configuración](docs/configuration.md)Todas las opciones del bundle con valores por defecto[Resolver](docs/resolver.md)API del `FormSchemaResolver`, fluent builder, DTOs de salida[Tipos de campo](docs/field-types.md)Los 22 tipos built-in, atributos, parámetros UI y `option.data`[Fuentes de opciones](docs/options-sources.md)`general` (catálogo BD), `entity` (repositorios del proyecto)[Renders](docs/renders.md)Renders de Form, Section y Group disponibles y su configuración[Caché](docs/cache.md)Activar caché PSR-6, invalidación automática y manual[Nombres de tabla](docs/table-names.md)Personalizar tablas con `table_prefix` y `table_names`[Extensibilidad](docs/extending.md)Crear tipos de campo, fuentes y renders propios[Traducciones](docs/translations.md)Estructura i18n, cómo se resuelve el locale activo[Seeders](docs/seeders.md)Poblar schemas desde YAML o clases PHP, comandos de consola---

Inicio rápido
-------------

[](#inicio-rápido)

```
composer require letkode/form-schema-bundle
```

Mapea las entidades en tu Entity Manager (ver [Instalación](docs/installation.md)):

```
# config/packages/doctrine.yaml
doctrine:
    orm:
        entity_managers:
            default:
                mappings:
                    LetkodeFormSchemaBundle:
                        type: attribute
                        is_bundle: false
                        dir: '%kernel.project_dir%/vendor/letkode/form-schema-bundle/src/Domain/Entity'
                        prefix: 'Letkode\FormSchemaBundle\Domain\Entity'
```

```
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
```

Resuelve el schema de un formulario:

```
$form = $resolver
    ->schema('user_onboarding')
    ->withLocale('es')
    ->withContext('create')   // filtra y sobreescribe atributos según actions[create]
    ->resolve();
```

---

Estructura del paquete
----------------------

[](#estructura-del-paquete)

### Jerarquía de entidades

[](#jerarquía-de-entidades)

```
Form
└── FormSection[]
    └── FormGroup[]
        └── FormField[]

FormOption
└── FormOptionValue[]

```

Cada nivel puede tener `parameters` (JSON libre), traducciones y un `type_render` que controla su render estructural. `FormOption` es el catálogo de opciones reutilizable (antes `FormOptionGeneral`).

### Renders en 3 niveles

[](#renders-en-3-niveles)

NivelResponsabilidadTipos disponibles`FormRender`Navegación entre secciones`default`, `stepper`, `tabs``SectionRender`Distribución de grupos dentro de una sección`default`, `accordion`, `collapsible`, `tabs``GroupRender`Distribución de campos dentro de un grupo`default`, `fieldset`, `matrix`, `tabs`### Contexto de acción (`actions`)

[](#contexto-de-acción-actions)

Los campos pueden configurar su visibilidad y atributos por contexto:

```
{
  "attributes": {
    "required": false,
    "actions": {
      "create": { "enabled": true, "required": true },
      "edit":   { "enabled": true, "required": false },
      "show":   { "enabled": true, "readonly": true }
    }
  }
}
```

El resolver aplica `withContext('create')` para filtrar campos deshabilitados y sobrescribir `required`, `readonly` y otros atributos dinámicos.

### Tipos de campo built-in

[](#tipos-de-campo-built-in)

CategoríaTiposTexto`text`, `email`, `password`, `textarea`, `rich_text`Numérico`number`, `range`Fecha`date`, `datetime`, `time`Selección`select`, `select-multiple`, `radio`, `checkbox`, `combobox`, `duallist`, `tree`Especiales`file`, `switch`, `rating`, `pin`

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance100

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity54

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.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/562202fef9515226531f2d5c3b8cfc6a0a3a3bb61616204e56e3d93eaec3ed5f?d=identicon)[letkode.app](/maintainers/letkode.app)

---

Top Contributors

[![tjcalma](https://avatars.githubusercontent.com/u/4671171?v=4)](https://github.com/tjcalma "tjcalma (16 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/letkode-form-schema-bundle/health.svg)

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M370](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M195](/packages/sulu-sulu)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M710](/packages/sylius-sylius)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1715.6k12](/packages/2lenet-crudit-bundle)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9017.2k55](/packages/open-dxp-opendxp)

PHPackages © 2026

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