Doctrine without setters
You will come across many drawbacks, like:
- ID is available after persist => solution: using object ids or UUID in entity constructor
- Symfony forms like to use setters => solution: use constructor (as you do) and CQRS
- value objects (like Email object that validates email in it's constructor) => solution: use embeddables