Flat-File Forms === Forms and Submissions managed flat-file Callable via REST-API ## Directory Structure - config.yaml (main config) - $contentFolder/ - config/ - $group/ - $pluginsFolder/ - $pluginName/ - Plugin.php ### config consists of - config/ - config.yaml - functions.php ### $group consists of - $group/ - config/ - $form/ ### $form consists of - $form/ - config/ - entries/ - $year - $month - $day - \$year\$month\$day_\$hour\$minute_\$hash.yaml - fields/ - _fields.yaml - email.yaml - name.yaml ## config adjust $contentFolder and $pluginsFolder path in main config.yaml `config.yaml` with config values in $contentFolder/config/ overwritten by config.yaml in $group/config/ overwritten by config.yaml in $form/config/ `functions.php` with custom code in $contentFolder/config/ included if exists in subsequent config folders ## REST-API `localhost:3000/$group/$group/$form` `GET` `...$form/fields` `GET` `...$form/entries?dateFrom=$date` `POST` `...$form/validate` `POST` `...$form/submit` ## Plugins 1. create `$pluginName` directory in $pluginsFolder 2. create `Plugin.php` with `FlatFileForms\Plugins\$pluginName` namespace and `Plugin` class 3. write code in `__construct` method