What Swiss government database, Vogue France and National Geographic Traveler Netherlands have in common? They are all powered by Symfony2! In this article we are going to tell you about the most high-load websites that are using this highly productive PHP framework and share our own experience with this kind of projects.
First of all we’d like to explain why we think that Symfony2 is well suited for this task.
Why Symfony2 is great for large websites?
Building large websites using Symfony2 is easy since it has a bunch of useful features:
- Composer is a dependency manager responsible for maintaining dependencies of PHP components. It installs and updates libraries used in the project.
- In Symfony2 everything is organized using bundles (structured set of files) that are easy to manage.
- It is possible to run console commands for automating certain tasks.
- Web Debug Toolbar that provides useful information about issues found on pages within websites using the Symfony2.
Who uses Symfony2?
Large websites that use Symfony2 belong to different categories and industries. For example, BlaBlaCar is a site for finding fellow passengers and ride sharing. Over 10 million people use it quarterly. Symfony is used in website and apps backend as well as in the backoffice.
A video-on-demand service NatGeo Play uses Symfony2 as well. Site allows its users to watch chosen programs and documentaries created by National Geographic in browser and on their mobile devices running iOS or Android.
Music streaming service Spotify also relies on Symfony2. Spotify has over 75 million active users with 20 millions of whom are paid subscribers. On average service processes 600 thousand requests per second with over half of the traffic coming from mobile devices.
When choosing a framework to start replacing legacy code in 2012 the company looked at several possible options, for example:
- Zend Framework 2
- Symfony 2
The main goal was to find a flexible framework to easily isolate components for testing, create custom URLs with routing and use dependency injection (helps to override anything to fit custom needs). Core reliability was also a criteria.
Company needed a new framework to be well-documented for quicker learning. Symfony2 fulfilled their demands. Technical details are discussed in SymfonyLive London 2015 presentation.
YouPorn, a famous site with video content for adults also works on Symfony2.
Large websites built on Symfony2 we mentioned are a great argument for choosing this PHP framework for your next project. You can find more projects built with Symfony2 in our portfolio or in Symfony Showcase. Below we tell about our own experience with developing a large Symfony2 website for one of our clients.
Large Symfony2 website made for transportation company MeinFernbus
We’ve been working on this project together with an amazing MeinFernbus IT team. Company is a leader of the German long distance bus transportation market. In 2015 it merged with Flixbus with new company covering 76% of the respective market.
For MeinFernbus we created a three-component system: sales site (frontend), company management system (backend) and API. Portal of agencies and partners are separate services:
Symfony2 and other technologies used
API is used to manage all business processes of the company. Sales site (frontend) is used for selling tickets and connects to API via backend. Simple CMS is used to control the appearance and content available on the website. It was written in Symfony2 using studio and third-party bundles.
Company management system (backend) includes several key components responsible for planning trips, notifying users about them, price setting and managing agencies and partners. All this data is visualized with D3.js library.
Giving the nature of the service, Geographic Information System (GIS) is an important component that:
- Receives, filters and processes data on bus location.
- Prepares data to be shown on the map in real time.
- Records data on bus arrival delay.
- Analyses accumulated data on delays that is necessary to adjust bus timetable.
To efficiently perform the abovementioned functions system has to process a lot of requests simultaneously. That’s why we used quick and lightweight micro-framework Silex for building it. It has all the necessary basic components and can be easily expanded with Symfony2 components if needed.
Finally, I’d like to say that the process of building big websites using Symfony2 requires some serious planning. You should allow a fair amount of time for making decisions about architecture and choosing components that will help to achieve client goals. At the same time Symfony2 is quite flexible and can be used for creating websites of different size and type: from video hostings to ecommerce stores.
We, studio stfalcon.com, have created a wide range of websites in Symfony2 and will be happy to help your business benefit from our experience and expertise.