letkode/form-schema-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

letkode/form-schema-bundle

最新稳定版本:1.0.1

Composer 安装命令:

composer require letkode/form-schema-bundle

包简介

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

README 文档

README

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 · Doctrine ORM ^3.4

Documentación

Documento Contenido
Instalación Composer, bundle, mapeo de entidades, migraciones
Configuración Todas las opciones del bundle con valores por defecto
Resolver API del FormSchemaResolver, fluent builder, DTOs de salida
Tipos de campo Los 22 tipos built-in, atributos, parámetros UI y option.data
Fuentes de opciones general (catálogo BD), entity (repositorios del proyecto)
Renders Renders de Form, Section y Group disponibles y su configuración
Caché Activar caché PSR-6, invalidación automática y manual
Nombres de tabla Personalizar tablas con table_prefix y table_names
Extensibilidad Crear tipos de campo, fuentes y renders propios
Traducciones Estructura i18n, cómo se resuelve el locale activo

Inicio rápido

composer require letkode/form-schema-bundle

Mapea las entidades en tu Entity Manager (ver Instalación):

# 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

Jerarquía de entidades

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

Cada nivel puede tener parameters (JSON libre), traducciones y un type_render que controla su render estructural.

Renders en 3 niveles

Nivel Responsabilidad Tipos 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)

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

Categoría Tipos
Texto 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

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固