What is it about?
Symfony is one of the most successful PHP projects. It is both a strong full-stack framework and a popular set of reusable components.
Since the release of Symfony 2.0 in 2011, the project has now reached maturity. I can feel that everything we have done in the past few years come together nicely. New low-level components, high-level integrations with other software, tools helping developers improve their productivity. The developer experience has improved substantially without sacrificing flexibility. It has never been so fun to use Symfony for a project.
If you are new to Symfony, this book shows the power of the framework and how it can improve your productivity by developing an application, step by step.
If you are already a Symfony developer, you should rediscover it. The framework has evolved dramatically during the last few years and the developer experience has improved significantly. I have the feeling that many Symfony developers are still "stuck" with old habits and that they have a hard time embracing the new ways of developing applications with Symfony. I can understand some of the reasons. The pace of evolution is staggering. When working full-time on a project, developers do not have time to follow everything happening in the community. I know first hand as I would not pretend that I can follow everything myself. Far from it.
And it is not just about new ways of doing things. It is also about new components: HTTP client, Mailer, Workflow, Messenger. They are game changers. They should change the way you think about a Symfony application.
I also feel the need for a new book as the Web has evolved a lot. Topics like APIs, SPAs, containerization, Continuous Deployment, and many others should be discussed now.
Your time is precious. Don't expect long paragraphs, nor long explanations about core concepts. The book is more about the journey. Where to start. Which code to write. When. How. I will try to generate some interest on important topics and let you decide if you want to learn more and dig further.
I don't want to replicate the existing documentation either. Its quality is excellent. I will reference the documentation copiously in the "Going Further" section at the end of each step/chapter. Consider this book as a list of pointers to more resources.
The book describes the creation of an application, from scratch to production. We won't develop everything to make it production ready though. The result won't be perfect. We will take shortcuts. We might even skip some edge-case handling, validation or tests. Best practices won't be respected all the time. But we are going to touch on almost every aspect of a modern Symfony project.
While starting to work on this book, the very first thing I did was code the final application. I was impressed with the result and the velocity I was able to sustain while adding features, with very little effort. That's thanks to the documentation and the fact that Symfony knows how to get out of your way. I am sure that Symfony can still be improved in many ways (and I have taken some notes about possible improvements), but the developer experience is way better than a few years ago. I want to tell the world about it.
The book is divided into steps. Each step is sub-divided into sub-steps. They should be fast to read. But more importantly, I invite you to code as you read. Write the code, test it, deploy it, tweak it.
Last, but not least, don't hesitate to ask for help if you get stuck. You might hit an edge case or a typo in the code you wrote might be difficult to find and fix. Ask questions. We have a wonderful community on Slack and GitHub.
Ready to code? Enjoy!