I've written A Year With Symfony for you, a developer who will work with Symfony2 for more than a month (and probably more than a year). You may have started reading your way through the official documentation ("The Book"), the cookbook, some blogs, or an online tutorial. You know now how to create a Symfony2 application, with routing, controllers, entities or documents, Twig templates and maybe some unit tests. But after these basic steps, some concerns will raise about... The reusability of your code - How should you structure your code to make it reusable in a future project? Or even in the same project, but with a different view or in a console command? The quality of the internal API you have knowingly or unknowingly created - What can you do to ensure that your team members will understand your code, and will use it in the way it was meant to be used? How can you make your code flexible enough to be used in situations resembling the one you wrote it for? The level of security of your application - Symfony2 and Doctrine seem to automatically make you invulnerable for well-known attacks on your web application, like XSS, CSRF and SQL injection attacks. But can you completely rely on the framework? And what steps should you take to fix some of the remaining issues? The inner workings of Symfony2 - When you take one step further from creating just controllers and views, you will soon need to know more about the HttpKernel which is the heart of a Symfony2 application. How does it know what controller should be used, and which template? And how can you override any decision that's made while handling a request?
Excellent! The first section is a thorough dive into the whole Symfony lifecycle, and even though a little bit of it is outdated as of early 2017, it's still very close. Open up your favorite IDE and follow along. The second section, on patterns of dependency injection, I found rather confusing, not having any experience with developing the kinds of configuration the author is talking about. Maybe in the future, I'll hit something along those lines in the real world and come back to it. The third section, Project structure, is worth reading for good OOP design in an MVC framework, even outside of Symfony. Configuration conventions is good advice, specifically toward Symfony. The fifth section, on security, is specific to Symfony, but is also written in a way that makes its principles generally applicable for good design. Frankly, I skipped over the section on Annotations. I don't like using them, although I understand their attraction. In my experience, none their supposed advantages over other configuration options is really advantage, and they don't avoid the disadvantages of other config options either. I did like learning that it is possible to create your own types of annotations, so if ever I come across a use case for them personally, I'll come back to that. The last section, like the third, is about writing good code, regardless of whether it's for Symfony, and well worth absorbing.
If you're an intermediate Symfony dev looking to upgrade your knowledge, this book is (still) for you. Very good overview of a Symfony request lifecycle, insight how to build your bundles (focus on the DIC), framework specifics. Good stuff, read it.
I've been a "Symfony 2 developer" for almost two and a half year now. However, I took the time to read this short book since the author, Matthias Noback is a well known "brogrammer" in the community. Most of the topics covered by the book where already known to me but there are great advises and tips. And most of them are, in fact, general programming good practices applied to the Symfony 2 environment.
Despite there are lots of documentation and cookbooks about the Security Component or the Form component I've missed some deeper insight on them.
So even if you have been working with Symfony for over a year it worth the time to read it and take advantage of the tips and advises it delivers, as is a short read.
This book is very good if you already familiar with Symfony2 and spent couple of months tinkering, this book will reveal very valuable information that you can't find in the cookbook