neverwoods / validformbuilder
The easiest tool for generating XHTML 1.0 valid and CSS enabled webforms.
Requires
- php: >=8.0
- ext-mbstring: *
- volnix/csrf: ~1.0
Requires (Dev)
- phpdocumentor/shim: ^3.8
- phpunit/phpunit: ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v5.3.3
- v5.3.2
- v5.3.0
- v5.2.0
- v5.1.0
- v5.0.0
- v4.8.1
- v4.8.0
- v4.7.0
- v4.6.3
- v4.6.2
- v4.6.1
- v4.6.0
- v4.5.8
- v4.5.7
- v4.5.6
- v4.5.5
- v4.5.4
- v4.5.3
- v4.5.2
- v4.5.1
- v4.5.0
- v4.4.1
- v4.4.0
- v4.3.0
- v4.2.3
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.8
- v4.1.7
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.0
- v3.4.3
- v3.4.2
- v3.4.1
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.12
- v3.2.11
- v3.2.10
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.1
- v3.2.0
- v3.1.0
- 3.0.0
- dev-fix/reserved-field-meta-wrapper-leak
- dev-fix/textarea-rows-cols-meta-override
- dev-legacy-v4
This package is auto-updated.
Last update: 2026-09-13 19:20:04 UTC
README
Quick links:
ValidForm Builder
The ValidForm Builder is a PHP and JavaScript library that simplifies the often tedious creation of standards based web forms. Correct field validation of forms is an often overlooked problem and can lead to serious security issues. Building a form and adding validation to it was never that easy.
- The API generates XHTML Strict 1.0 compliant code.
- Field validation on the client side to minimize traffic overhead.
- Field validation on the server to enforce validation rules and prevent tempering with the form through SQL injection.
- Client side validation displays inline to improve user satisfaction. No more annoying popups that don't really tell you anything.
- Creation of complex form structures.
- Uses the popular jQuery Javascript library for DOM manipulation.
- Completely customizable using CSS rules.
- Automatic creation of field summaries for form mailers.
- Super fast web form creation.
- Get rid of SQL injection problems.
- Create standards based CSS forms. No tables inside.
- Make form entry fun for the user. More feedback from your website.
- Write client- and server-side validation at the same time
Installation
You're free to download the source and get started to install ValidForm Builder. Add the following to your project's composer.json file:
{
"require": {
"validformbuilder/validformbuilder": "~5"
}
}
By using the tilde you'll automatically install bug fixes and new features. See Composer documentation for details.
Documentation
You can eat get going fast with the new extensive documentation generated by PHPDoc. We've proved lots of inline documentation together with example code to get you started fast an easy.
Here are some documentation quick links:
- The Documentation (entry point)
- Get started with the ValidForm object
- Creating a checkbox / radio button list
- Four ways to create a
<select>list - Create a basic text field
- Advanced - Getting started with Conditions and Comparisons
- Match two password fields client & server-side
If you have any questions, please ask them on stackoverflow and be sure to tag your question with the validform tag. We regulary monitor these questions and try to answer them as soon as we can :)
Examples
Check out the examples folder for many real-live use cases for ValidForm Builder. Each snippet is ready to copy-paste into your project!
Releasing
Releases are cut by hand. There is no version bump tooling, no changelog file and no release automation; a release is a git tag plus a GitHub release, and Packagist picks the tag up on its own.
- Merge the PRs for the release into
master. ThePHPUnit testsworkflow must be green onmasterbefore you continue. - Pick the next version number using semantic versioning: patch for bug fixes, minor for new features, major for breaking changes.
- Make sure
composer.jsondoes not contain aversionfield. Packagist reads the version from the tag and rejects a tag whosecomposer.jsondeclares a different version. - Create and push an annotated tag from
master:git checkout master && git pull git tag -a v5.4.0 -m "Short description of the release" git push origin v5.4.0 - Create a GitHub release for the tag on the releases page, using the same title as the tag message. The release title is the only place release notes live, so add a short list of changes in the body.
After the tag is pushed, Packagist updates automatically through the GitHub webhook. Check that the new version is listed there; if it is not, the tag was most likely rejected because of step 3.
The API documentation on validformbuilder.org/docs is regenerated by the Generate Documentation workflow on every push to master, independent of releases.
Happy coding!
Felix & Robin