Download the PHP package nowo-tech/form-kit-bundle without Composer
On this page you can find all versions of the php package nowo-tech/form-kit-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nowo-tech/form-kit-bundle
More information about nowo-tech/form-kit-bundle
Files in nowo-tech/form-kit-bundle
Package form-kit-bundle
Short Description Symfony bundle to reduce repetitive form field options: convention-based labels/placeholder/help (form_snake.field_snake.*), configurable attr/row_attr/translation_domain, and cascading option merge (global → field type → form → field). Symfony 7.4|8.
License MIT
Homepage https://github.com/nowo-tech/FormKitBundle
Informations about the package form-kit-bundle
Form Kit Bundle
⭐ Found this useful? Install from Packagist and give the repo a star on GitHub.
Symfony bundle to reduce repetitive form field options: convention-based translation keys (form_snake.field_snake.label, .placeholder, .help), configurable defaults and multiple profiles via YAML, and cascading option merge (global → field type → form → field).
Minimum requirements: PHP 8.2 and Symfony 7.4. Also compatible with Symfony 8.0 and 8.1 (require PHP 8.4+).
This bundle is FrankenPHP worker mode friendly.
Features
- Usage strategies: Options (
FormOptionsTrait+ FQCN), Kit (FormKitTrait/FormKitAbstractType+ snake_case), Controller (FormKitControllerTrait), Wrapped (AbstractFormKitWrappedType). See Usage — strategies. - Convention-based labels, placeholder and help: Default translation keys are
{form_snake}.{field_snake}.label,.placeholder,.help. Set any tofalsein field options to disable. - Multiple profiles: Define named profiles (e.g.
default,bootstrap) withtranslation_domain,defaults.attr,defaults.row_attr,by_form, and per-field-type options. Choose the active profile per form via#[FormKitConfig('bootstrap')]orsetFormKitConfigName()(named-config technique). - Cascading merge: Options are merged in order: profile defaults → field type →
by_form→ field options. Explicit field options override. - Options strategy helpers:
addText(),addEmail(), … PreferwithBuilder($builder, …)+addTextField()(bound-builder). Or array-build withbuildFormFromArray(). - Choice presets:
addSelect(),addMultiSelect(),addChoiceRadios(),addChoiceCheckboxes(), plusaddMultiSelectSelectAll()when nowo-tech/select-all-choice-bundle is installed (optional Composer suggest). - FQCN helpers:
addAutocompleteField()for Symfony UX Autocomplete types,addCKEditorField()when friendsofsymfony/ckeditor-bundle is installed;addDropzone()/addCropper()when the UX packages are installed. - Nowo-tech widgets (optional):
addOtp(),addPhone(),addPasswordToggle(),addPasswordStrength(),addIconSelector(),addCkeditor5Editor(),addTiptapEditor(),addTagInput(),addSlideToConfirm()— Composer suggest only;LogicExceptionif the package is missing. - Model transformers:
addSwitchType(),addJsonType(),addBoolType(),addMoneyType(),addCsvType()(same helpers on FormKitControllerTrait with*Typesuffix). - Optional types: FormTypeMap includes core Symfony types (including
search) plus optional UX (Dropzone, Cropper), A2lix, and nowo-tech widgets when installed. Extend viatype_map. - Multi-step wizard:
MultiStepFormBuilderfor stepped forms (see the Symfony 8 demo). - Constraint message convention:
constraint_message_conventionplus#[FormKitConfig]/ static field types (StaticAlertType, …). - CSRF-only / GET filters:
CsrfOnlyFormFactory,AbstractGetFilterType,GetFilterFormFactory,SearchQueryType. See docs/CSRF.md. - Form type extensions: InputGroupExtension, RequiredLabelSuffixExtension, HelpModalExtension. See Usage.
Installation
With Flex, the recipe creates config/packages/nowo_form_kit.yaml. Otherwise register the bundle in config/bundles.php and add the config file manually. See docs/INSTALLATION.md.
Quick usage (Options strategy)
- Configure (optional) — edit
config/packages/nowo_form_kit.yaml: setdefault_profile,profiles(each withalias,translation_domain,defaults,field_types), and optionallytype_mapfor custom or UX types. -
Register your form as a service and inject FormOptionsMerger:
-
Use
FormOptionsTrait(bound-builder or array-build): - Add translations for keys like
user_profile.full_name.label,user_profile.full_name.placeholder,user_profile.full_name.helpin your translation domain.
Demos
The bundle includes a Symfony 8 demo that runs with FrankenPHP (Caddy + PHP in Docker). Runtime mode is controlled by FRANKENPHP_MODE in the demo .env (default worker; set classic for per-request PHP / easier hot-reload). Change the value and recreate the container (docker compose up -d) — no image rebuild. See docs/DEMO-FRANKENPHP.md. The demo has:
- Locale in the URL — routes are under
/{locale}/…(en,es,fr,de);/redirects to the default locale. - FormType example (contact,
buildFormFromArray), help modal sample (help-modal.js+assets:install; include@NowoFormKitBundle/help_modal/shells.html.twigfor overridable modal shells). - Form built in the controller (
FormKitControllerTrait/FormOptionsMerger::resolve()). - Search, example, Dropzone, Cropper, translations (A2lix), nested, data transformers, choice fields, conditional fields (incl. Live Component), Kit API patterns (snake_case
FormKitAbstractType+ named config), Nowo special fields (OTP, phone, password, icon selector, tags, Tiptap, CKEditor 5, slide-to-confirm — see demo/README.md), CKEditor (FOSCKEditorBundle), UX Autocomplete, multi-step wizard.
Run a demo via Docker/Make from the bundle root; see docs/CONTRIBUTING.md.
For CSS frameworks, see docs/USAGE.md for ready-to-use configuration examples for Bootstrap 5 and Tailwind CSS.
Documentation
Developer-facing docs and comments (Markdown, PHPDoc, JSDoc) are English only; see Contributing — Language policy.
- Installation
- Configuration
- PSR evaluation (REQ-CS-007)
- Usage
- Flex recipe
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- GitHub Actions CI requirements
- PHPStan
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
- Roadmap
Additional documentation
- Demo with FrankenPHP (development and production)
- Help modal (field option + frontend script)
- Overriding bundle templates
Tests and coverage
- Tests: PHPUnit (PHP), Vitest (TypeScript)
- PHP: 99.4%
- TS/JS: 100%
- Python: N/A
License
MIT. See LICENSE.
All versions of form-kit-bundle with dependencies
php Version >=8.2 <8.6
symfony/config Version ^7.4 || ^8.0
symfony/dependency-injection Version ^7.4 || ^8.0
symfony/form Version ^7.4 || ^8.0
symfony/http-kernel Version ^7.4 || ^8.0
symfony/translation Version ^7.4 || ^8.0
symfony/validator Version ^7.4 || ^8.0
symfony/yaml Version ^7.4 || ^8.0
twig/extra-bundle Version ^3.12
twig/string-extra Version ^3.12