You're absolutely right. As always there are many ways to tackle many problems. The reason I'm using it like this is because I based myself on a manual install tutorial and just created the ansible line per install command. You can of course optimize by combining those 2 apt-get's into one. But this was all for the sake of tutoring. I wouldn't recommend using this as an end product, you would be better of using one of the prepared roles on https://galaxy.ansible.com/
Added that the install commands in the list if people prefer homebrew
When you create your form via FormFactory you can bind your entity to it. By using the magic "loadValidatorMetadata" inside your entity your "$form->isValid()" function will automatically validate your entity and map it with your form rows.
For more information and examples you can checkout my Silex-skeleton on Github. It contains loads of examples and best practices i use.
I rewrote this since i made a miss judgement, Never doubt Fabien ;-) They had this implemented the correct way -> See step 4 code for the changed code