Preface
Welcome to your journey in Mastering Symfony. It is my duty and absolute pleasure to show you a different side of Symfony's world and take your development knowledge to a whole new level. In this book, I will not only sharpen your Symfony skills, but will also show you how to look at a project from different angles.
As a backend developer, you can always stick to your skill set and deliver a good job. However, it would be excellent if we could experience the way a business requirement is born, how a project manager sees the problem, what kind of technologies a system administrator uses to host the project, and how it affects developers, before finally knowing how to establish a more efficient work flow with frontend developers.
Having already published a few books, I am proud to say that this one—Mastering Symfony—is unique. After warming you up with some introductory materials, I will take you to the heart of the devil and show you how to find your way around a seriously robust project with mountains of real-life challenges. To run this show properly, I needed a decent-size stage. That's why I've decided to build a project management web application over the tutorials of this book. This web application gives me enough space to explore and expand many of Symfony's features required for my goal.
After the two introductory chapters, I will talk about how to set up a project properly. In other words, I will discuss the importance of concepts such as version control, continuous integration, deployment process, behavior-driven development, and so on. I will use Amazon Web Services to host our development, test, and deployment servers and show you how to integrate AWS tools and technologies into your Symfony project.
Then, I will talk about why the development culture has changed recently and why, before writing a single line of code, we have to be clear about scenarios and behaviors. I will discuss Behat and Mink and, more importantly, show you how to utilize them in your projects.
Finally, after I feel confident about everything being in the right place, we will start the real coding. In our Model layer, we will create business logic via Doctrine and feed it with data fixtures. In our Controller layer, we will develop and use a dozen of amazing functionalities coming from various bundles, and in our View layer, we will explore the Twig template engine thoroughly and implement slick frontend features and mobile functionality with the Bootstrap 3.x framework.
A good web app should be able to provide decent security, a user-friendly dashboard, and reasonable speed. That's where I will expand the security concept in Symfony and discuss the Sonata project, followed by the idea of CMF. For those who concern themselves with performance, I will show you how to create blazing fast Symfony applications with the help of reverse proxy caching systems such as Varnish.