Skip to content

arqel-dev/form — API Reference

Namespace Arqel\Form\. Builder fluente + 7 layout components + FormRequest generator.

Arqel\Form\Form (final)

Builder.

MétodoTipoDescrição
Form::make()selfFactory
schema(array)selfLista heterogénea de Fields + Layout components
columns(int)selfColunas do grid raiz (clamp ≥ 1)
model(class-string<Model>)selfHint de model
inline(bool)selfRenderiza inline em vez de modal
disabled(bool)selfDisable global
getFields(): array<Field>flatten recursivodesce em layout components
toArray(): arraySchema serializadodiscriminator kind: 'field'|'layout'

Layout Components

Arqel\Form\Layout\Component (abstract). Estado partilhado: $schema, $columnSpan, $visibleIf, $canSee. Oracle isVisibleFor(?Model) avalia canSee antes de visibleIf.

ClassSetters extra
Sectionheading, description, icon, collapsible, collapsed, columns, compact, aside (collapsed() implica collapsible())
Fieldsetlegend, columns
Gridcolumns(int|array<string,int>), gap
Columnsatalho semântico para Grid::columns(2)
Grouporientation('horizontal'|'vertical')
Tabstabs(array<Tab>), defaultTab(id), vertical()/horizontal()
Tabid, label, icon, badge(int|Closure) (Closures não-int descartadas)

Arqel\Form\FieldRulesExtractor (final)

Agrega rules/messages/attributes através de uma lista flat de Fields.

MétodoRetorna
extract(array<Field>)array<name, rules>
extractMessages(array<Field>)array<{name}.{rule}, message>
extractAttributes(array<Field>)array<name, attribute>

Entries não-Field são silenciosamente descartados.

Arqel\Form\FormRequestGenerator (final)

Gera Store{Model}Request/Update{Model}Request a partir de uma class-string de Resource.

php
$generator->generate(PostResource::class, 'create', 'App\\Http\\Requests'): string  // PHP source
$generator->write(PostResource::class, base_path('app/Http/Requests'), force: false): array<string>

Skip silente quando ficheiro existe e force=false. As classes geradas delegam rules()/messages()/attributes() ao FieldRulesExtractor resolvendo o Resource via container.

Licença MIT — construído com Inertia + React + Laravel.