Reef is an open source PHP and Javascript library for dynamically creating forms. It features three different methods for building forms:
There are many more form generators written in PHP, but almost all of them either are not embeddable (and hence require an additional website setup besides your main website), are not open source or seriously lack functionality. Reef is created to overcome these problems, providing a framework agnostic form generator that can freely be embedded into your own website, while also providing you the possibility to extend it with your own form components.
Reef is aimed at those users who want to provide their users with the ability to build their own forms, and in turn present these forms to other users to fill them in. Reef can be used to create, save and modify forms, as well as render forms for display, process and save submitted form data, and display already filled in forms for modification. In an overview, these are Reef's features:
Let your users build forms using a drag and drop user interface, or build forms programmatically using a chaining interface
Use Reef to display the form and process and validate the form input data submitted by your users
Let Reef store your forms and submissions in your database using PDO. Of course, you can also process the data yourself
Already have received submissions, but want to modify your form? Reef provides the possibility to add, edit and delete fields on the fly, warning you about any data loss that may occur in the process
You can generate HTML code for displaying submissions, and also generate a CSV file containing all submissions. Reef purposefully does not provide extensive reporting tools - this deserves the attention and devotion of an entirely separate piece of software
Present your forms in multiple locales
Reef uses the responsive Bootstrap 4 by default, but also provides support for integrating other CSS frameworks
Use user input to dynamically show or hide fields, enabling you to only ask those questions that are needed
Integrate Reef seamlessly into your own website, where and when you want
Missing a form component, language or template? Find someone who made it for you, or create it yourself! For other missing functionality, extensions can be created
Reef is not built upon any specific PHP framework. It does have a few dependencies, but these should not be an issue. The drag and drop interface does require the jQuery library
Being available under the LGPL 3.0 license, it is the aim of the Reef project to provide a form generator for everyone, by everyone. Use it and help us improve it!
As much as we'd like, we cannot do everything. There are some audiences Reef is not in particular well-suited for:
To integrate Reef into your own website, you'll need to do the following:
Of course, this is only to give you an idea of what you'll need to do. A more extensive explanation can be found in our integration guide.
You'll need to provide your own logic for deciding who may add, modify and delete forms and who may view, add, modify and delete form submissions. As use cases for forms vary a lot, we cannot do this for you!
After this, you'll probably also want to display the submissions somewhere, which can be done either by using the built-in (multiple) submission overviews or (single) submission views, or by fetching the data and displaying it yourself.