The form handlers are designed to enhance the developer experience (DX) when working with Symfony forms. It makes the controllers simpler by moving the form success and failure flows to a separate class.
class YourController extends Controller
{
public function formAction(Request $request, MyEntityUser $user)
{
$handler = $this->get('hostnet.form_handler.factory')->create(MyFormHandler::class);
if (($response = $handler->handle($request, new MyFormData())) instanceof RedirectResponse) {
return $response;
}
// regular or in-valid flow
return $this->render->renderView('/your/form.html.twig', [
'form' => $handler->getForm()->createView()
]);
}
}
By extracting the success - and if available, the failure - flows, you reduce the amount of code in your controllers, which in turn, achieves slim controllers. The definition of a controller is according to Symfony: "a PHP function you create that reads information from the Symfony's Request object and creates and returns a Response object".
The hostnet/form-handler-bundle
is licensed under the MIT License, meaning you can reuse the code within proprietary software provided that all copies of the licensed software include a copy of the MIT License terms and the copyright notice.