ueb / form
Gerador de código fonte para operações CRUD
Installs: 1 131
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Language:Mustache
Requires
- php: >=7.1
- ueb/entity: *
- dev-master
- 3.0.98
- 3.0.97
- 3.0.96
- 3.0.95
- 3.0.94
- 3.0.93
- 3.0.92
- 3.0.91
- 3.0.90
- 3.0.89
- 3.0.88
- 3.0.87
- 3.0.86
- 3.0.85
- 3.0.84
- 3.0.83
- 3.0.82
- 3.0.80
- 3.0.79
- 3.0.78
- 3.0.77
- 3.0.76
- 3.0.75
- 3.0.74
- 3.0.73
- 3.0.72
- 3.0.71
- 3.0.70
- 3.0.69
- 3.0.68
- 3.0.67
- 3.0.66
- 3.0.65
- 3.0.64
- 3.0.63
- 3.0.62
- 3.0.61
- 3.0.60
- 3.0.59
- 3.0.58
- 3.0.57
- 3.0.56
- 3.0.55
- 3.0.54
- 3.0.53
- 3.0.52
- 3.0.51
- 3.0.50
- 3.0.49
- 3.0.48
- 3.0.47
- 3.0.46
- 3.0.45
- 3.0.44
- 3.0.43
- 3.0.42
- 3.0.41
- 3.0.40
- 3.0.39
- 3.0.38
- 3.0.37
- 3.0.36
- 3.0.35
- 3.0.34
- 3.0.33
- 3.0.32
- 3.0.31
- 3.0.30
- 3.0.29
- 3.0.28
- 3.0.27
- 3.0.26
- 3.0.25
- 3.0.24
- 3.0.23
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.09
- 3.0.08
- 3.0.07
- 3.0.06
- 3.0.05
- 3.0.04
- 3.0.03
- 3.0.02
- 3.0.01
- 3.0.0
- 2.0.51
- 2.0.50
- 2.0.49
- 2.0.48
- 2.0.47
- 2.0.46
- 2.0.45
- 2.0.44
- 2.0.43
- 2.0.42
- 2.0.41
- 2.0.40
- 2.0.39
- 2.0.38
- 2.0.37
- 2.0.36
- 2.0.35
- 2.0.34
- 2.0.33
- 2.0.32
- 2.0.31
- 2.0.30
- 2.0.29
- 2.0.28
- 2.0.27
- 2.0.26
- 2.0.25
- 2.0.24
- 2.0.23
- 2.0.22
- 2.0.21
- 2.0.20
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.09
- 2.0.08
- 2.0.07
- 2.0.06
- 2.0.05
- 2.0.04
- 2.0.03
- 2.0.02
- 2.0.01
- 2.0.00
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.09
- 1.1.08
- 1.1.07
- 1.1.06
- 1.1.05
- 1.1.04
- 1.1.03
- 1.1.02
- 1.1.01
- 1.1.00
- 1.0.99
- 1.0.98
- 1.0.97
- 1.0.96
- 1.0.95
- 1.0.94
- 1.0.93
- 1.0.92
- 1.0.91
- 1.0.90
- 1.0.89
- 1.0.88
- 1.0.87
- 1.0.86
- 1.0.85
- 1.0.84
- 1.0.83
- 1.0.82
- 1.0.81
- 1.0.80
- 1.0.79
- 1.0.78
- 1.0.77
- 1.0.76
- 1.0.75
- 1.0.74
- 1.0.73
- 1.0.72
- 1.0.71
- 1.0.70
- 1.0.69
- 1.0.68
- 1.0.67
- 1.0.66
- 1.0.65
- 1.0.64
- 1.0.63
- 1.0.62
- 1.0.61
- 1.0.60
- 1.0.59
- 1.0.58
- 1.0.57
- 1.0.56
- 1.0.55
- 1.0.54
- 1.0.53
- 1.0.52
- 1.0.51
- 1.0.50
- 1.0.49
- 1.0.48
- 1.0.47
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.09
- 1.0.08
- 1.0.07
- 1.0.06
- 1.0.05
- 1.0.04
- 1.0.03
- 1.0.02
- 1.0.01
- 1.0.00
This package is auto-updated.
Last update: 2025-05-04 17:23:56 UTC
README
Biblioteca PHP para geração dinâmica de formulários baseados em dicionários de metadados de entidades. Permite criar, editar e validar formulários de maneira automatizada e consistente.
Principal Funcionalidade
A principal funcionalidade desta biblioteca é a view de formulário, que permite gerar formulários completos através de uma URL simples:
/form/{entidade}/{id}/{campos_opcionais}
Por exemplo:
/form/clientes/2
- Editar o cliente com ID 2/form/produtos/null
- Criar um novo produto/form/usuarios/5/nome,email,telefone
- Editar o usuário 5, mostrando apenas os campos especificados
Esta abordagem torna extremamente fácil implementar CRUDs completos sem necessidade de codificação adicional para cada entidade.
Funcionalidades
- Geração Dinâmica: Cria formulários automaticamente a partir de dicionários de metadados
- Suporte a Diversos Tipos de Campos: Input, textarea, select, checkbox, radio, switch, upload de arquivos, etc.
- Relacionamentos: Gerencia relacionamentos entre entidades (one-to-one, one-to-many, many-to-many)
- Validação Cliente/Servidor: Validação em JavaScript e PHP
- Customização: Personalize a aparência e comportamento dos formulários
- Autocomplete: Funcionalidade de preenchimento automático para campos relacionais
- Responsivo: Formulários adaptáveis a diferentes tamanhos de tela
Instalação
composer require ueb/form
Como Usar
1. Via URL (Método Principal)
Simplesmente acesse a URL no formato:
/form/{entidade}/{id}/{campos_opcionais}
O formulário será gerado automaticamente com base no dicionário de metadados da entidade.
2. Configuração de Rota (opcional)
Para implementar a rota /form/
, você pode adicionar:
// Em seu arquivo de rotas Router::route('/form/:entity/:id', function($data) { $entity = $data['entity']; $id = $data['id']; include PATH_HOME . 'vendor/ueb/form/public/view/form/form.php'; });
3. Uso Programático (alternativo)
// Criar um formulário para a entidade "produtos" $form = new Form\Form("produtos"); // Exibir todos os campos da entidade $form->showForm(); // Ou especificar campos desejados $form->setFields(["nome", "descricao", "preco"]); $form->showForm(); // Carregar formulário para edição $form->showForm(5); // Carrega o registro com ID 5 para edição
Personalização
// Definir valores padrão para novos registros $form = new Form\Form("usuarios"); $form->setDefaults([ "status" => 1, "data_cadastro" => date("Y-m-d") ]); // Personalizar botão de salvar $form->setSaveButtonText("Cadastrar Usuário"); $form->setSaveButtonIcon("person_add"); $form->setSaveButtonClass("btn-large"); // Desativar salvamento automático $form->setAutoSave(false); // Definir callback após salvamento $form->setCallback("reloadTable");
Tipos de Campos Suportados
- Input: Texto, número, email, telefone, CPF, CNPJ, CEP, etc.
- Textarea: Campos de texto multilinha
- Select: Dropdown com opções
- Checkbox/Radio: Seleção única ou múltipla
- Switch: Toggle on/off
- File: Upload de arquivos
- List: Campos relacionais
- List_mult: Relações múltiplas
- Extend: Campos de extensão para relacionamentos complexos
Opções da URL
A URL oferece algumas opções especiais:
form-no-header
: Esconde o cabeçalho do formulárioform-no-card
: Remove o estilo de card do formulário
Exemplo:
/form/clientes/2/form-no-header/form-no-card/nome/email
API JavaScript
A biblioteca inclui scripts JavaScript para interação do usuário:
// Inicializar formulário $("#form-container").form("usuarios", null, ["nome", "email", "telefone"]); // Inicializar com callback após salvamento $("#form-container").form("usuarios", null, [], function() { alert("Usuário salvo com sucesso!"); });
Endpoints
A biblioteca disponibiliza vários endpoints para processamento:
/post/save/form.php
: Salva dados do formulário/post/api.php
: API principal para interação com formulários/post/autocomplete/form.php
: Gerencia autocomplete de campos/post/children/form.php
: Gerencia formulários filhos/post/read/list.php
: Leitura de listas relacionais
Requisitos
- PHP 7.2 ou superior
- MySQL/MariaDB
- Bibliotecas de dependência:
- Entity (para gerenciamento de dicionários de metadados)
- Helpers (para funções auxiliares)
- Conn (para conexão com banco de dados)
Exemplos Avançados
Criando um formulário com relacionamentos
// Formulário de pedidos com relacionamento a clientes $form = new Form\Form("pedidos"); $form->showForm(); // Automaticamente gerencia o campo de seleção de cliente // baseado no dicionário de metadados
Validação customizada
// A validação é definida no dicionário de metadados // e processada automaticamente
Contribuindo
Contribuições são bem-vindas! Por favor, sinta-se à vontade para enviar um Pull Request.
Licença
Este projeto está licenciado sob a MIT License.