Skip to content

Our Symfony articles


Learn how to implement VAT for your e-commerce website with Sylius in 6 minutes

February 06, 2024Fabien Charlier6 min read

If you are using Sylius for your e-commerce website, then you will inevitably come across the subject of Value Added Tax (VAT). As a software engineer at Theodo, I have spent countless hours customizing every one of its aspects, for it to behave in the exact way I wanted it to. So you don't need to…

Continue reading →

Event Sourcing? What, why, how in 5 minutes

January 23, 2024Arthur Naudy5 min read

Event sourcing is an architectural pattern that provides a highly comprehensible audit trail. Tracking patient medical data, tracking transactions for financial services to ensure compliance with regulatory requirements, or tracking the movement of goods in a supply chain process… Event sourcing can…

Continue reading →

How to Simply Generate a PDF From HTML in Symfony With WeasyPrint

November 30, 2023Damien Clauzon6 min read

A thousand PDF generation solutions, but which one to choose? Recently, I was faced with a problem that many developers fear and avoid: generating a PDF document. There are lots of libraries handling this, the problem is knowing which one best fits your project. For my specific use case, I had to…

Continue reading →

How to migrate from Api Platform v2 to v3?

November 28, 2023Grégoire AbachinSébastien Touzé8 min read

We updated several projects from Api Platform v2 to v3 and felt that some aspects of the migration were not fully covered in the documentation. This article shares our feedback on the migration process and helps you to migrate your application to the latest version of Api Platform.

Continue reading →

How to ensure that all the routes on my Symfony app have access control

October 03, 2023Thomas Hercule8 min read

On my Symfony project, I wanted to verify if all the routes in my app had access control. This article will guide you through setting up an automated check for access control on your Symfony routes. TL;DR Effective access control involves both Symfony's firewall and specific control on each route…

Continue reading →

Leverage Generative AI in your PHP E-Commerce website with Qdrant and LLPhant

August 28, 2023Maxime Thoonsen4 min read

There are many use cases of Generative AI: e-commerce search, customer support and sales optimization, law case search... To help e-commerce and other use cases written in PHP, I'm happy..I'm happy to announce the addition of Qdrant as a vectorStore in LLPhant to open up the possibility of making…

Continue reading →

Boost Your Next.js Commerce with Sylius: Introducing Sylext

June 05, 2023Charles DUVIGNEAU2 min read

If you are a PHP developer looking to create a fully customized e-commerce website, we recommend using Sylius as your e-commerce solution. With its modular and decoupled architecture, Sylius makes it effortless to integrate with third-party services and extend its functionality using custom code…

Continue reading →

Retrieve an Object with Desired Subresources with API Platform

April 20, 2023Souleyman BEN HADJ BELGACEM9 min read

API Platform offers a lot of possibilities, once you learn to leverage its full capabilities, it will send your development skills to the next level, that’s what I learned when I discovered how to use data providers and extensions. API Platform beginners tend to use a lot of custom controllers by a…

Continue reading →

Love HATEOAS with Symfony and API Platform

March 20, 2023Thomas Eudes9 min read

HATEOAS (Hypermedia As The Engine Of Application State) is a part of the REST standard that can help you create more robust and maintainable web services. By including hypermedia links within its responses, a server can indicate the possible actions that the clients can perform depending on the…

Continue reading →

The Guide I Wish I Had to Implement a Jwt Auth in Symfony

December 15, 2022Loïc Chau6 min read

Symfony is a great framework with very exhaustive documentation; too exhaustive sometimes. As I started my project I got lost too many times in the documentation... This is the article I wish I had to guide me through the implementation of authentication with JWTs and refresh tokens. It is a step-by…

Continue reading →

Writing Quality Code Using the Chain of Responsibility Pattern

April 29, 2022Moad Fethallah5 min read

At the beginning of my software engineering internship, I had little experience with writing clean code. The features were functional but there was hardly any underlying organization. I was lacking guidelines on what classes to create and how they should interact with each other. That’s when my…

Continue reading →

Taking a Symfony & Vue project to the Nuxt level

October 04, 2019Jean-Philippe Dos Santos5 min read

If you did not read the first part yet, please have a look here before going further. Introduction In our last post, we explained: why our Twig / Vue mix was bad, in terms of development experience, maintainability and performance why we decided to migrate to a full Nuxt.js application. In this…

Continue reading →

Cookieless domains in an HTTP/2 world

September 06, 2019Kevin Raynel5 min read

One of the most popular performance indicator is the Speed Index. It directly reflects on your SEO and you probably want to monitor it. One of our client at Theodo runs a large marketplace. They sell around 3 millions items (Q1 2019), and serve more than 2 billion HTTP requests every month. We will…

Continue reading →

Single Sign-On demystified: set up a custom SSO using JWT

July 28, 2019Pierre Milliotte7 min read

On a previous project, I had to set up Single Sign-On (SSO) between two existing and independent applications. This article, which explains how I proceeded, aims at helping understand it and setting it up with Symfony. What is Single Sign-On (SSO)? Single Sign-On (SSO) is a process that enables a…

Continue reading →

Setup VS Code for Efficient PHP development 🚀

July 19, 2019Louis-Marie Michelin8 min read

I recently started programming in PHP using the well-known Symfony framework. I wanted to keep my VS Code habits and proficiency I had from my previous projects in Node.js and Vue.js, so I tried to configure VS Code for PHP development as well. Moreover, I didn't want to invest €199 in the famous…

Continue reading →

How to Deploy a PHP Symfony Application on AWS Lambda Using Bref?

May 23, 2019Thibaud Lemaire7 min read

Serverless is a trendy cloud-computing execution model aiming to release developers from taking care of server management and to bill on demand for the used resources. Developers just have to provide their application’s code while the cloud provider is in charge of running it in response to events…

Continue reading →

Upload documents the right way with Symfony in AWS S3 buckets

June 18, 2018Alan Rauzier5 min read

Why? Adding upload fields in Symfony application eases the way of managing assets. It makes it possible to upload public assets as well as sensitive documents instantly without any devops knowledge. Hence, I’ll show you a way of implementing a Symfony / Amazon AWS architecture to store your…

Continue reading →

A quick and simple way to make your functional tests independent with Symfony and mysql

March 05, 2018Sophie Moustard2 min read

Having independent functional tests is a good practice recommended by many developers. It allows you save a great deal of time; and it is well known, time is money! Why If your tests are not independent, it means that the execution of one test can impact the result of the following tests. Dependent…

Continue reading →

Add online payment on your Symfony project in half a day

October 22, 2017Ivann Morice3 min read

As a way of getting incomes from your web application you often need to setup a way for your user to pay through your website. Usually thanks to a form where your user will fill it's banking information. It may sounds like a big feature to implement but existing tools really ease the task. On my…

Continue reading →

Deploy your Symfony application on AWS Elastic Beanstalk using CloudFormation

October 06, 2017Maxime Thoonsen3 min read

I decided to follow an advice shared on twitter via the The Practical Dev: the best way to learn AWS is to start using it. The problem I was looking for a way to quickly create a Minimum Viable Stack on AWS with the following properties: Be setup in less than 10min Be able to run a Symfony…

Continue reading →

Transform your Symfony forms, make it nice, elegant and modern with Material Design in 5 minutes!

March 20, 2017Nicolas Boutin1 min read

You want to make a nice, elegant and modern form using the new design standards of Material Design, I’ll try to give you a 5-minutes way to do so with Materialize, a JQuery library, based on these guidelines. Get Started Get the assets from Materialize and add it in web directory of your project…

Continue reading →

Interacting with SVG image files using Twig

January 12, 2017Pierre Poupin2 min read

What is the SVG file format and why should I care? SVG stands for Scalable Vector Graphics. It is a file format for vectorial images described using XML tags. Since it is vectorial, it presents a few advantages: it is lightweight you can zoom it as much as you want without it getting blurry you can…

Continue reading →

Extend the Algolia Search Bundle to Multiple Databases

November 24, 2016Cédric Kui3 min read

Creating a search engine from scratch may be tricky and lengthy. That is why, when I wanted to implement one in my Symfony app, I chose to use Algolia through its SaaS model. Thanks to their Symfony bundle, I managed to map my Person and Company entities from my main database to their indexes with a…

Continue reading →

Stop Wasting your Time Restarting Services Manually After Deployment: Visudo It!

October 13, 2016Paul Jehanno2 min read

© xkcd Here is how I managed to save time on my PHP project by enabling restarting services automatically during deployment. Basic capistrano configuration When I work on PHP projects I deploy using Capistrano, a tool that enables scripting of deployment tasks. During my previous project, I had to…

Continue reading →

Sonata for Symfony: Hide Your Filters!

September 30, 2016Victor Duprez4 min read

How to enforce and hide filters on a Sonata’s list view Sonata provides you with a robust and easy to implement interface administration for your Symfony projects. We have been using and loving it on my projects for 19 weeks now. Every day we are amazed with the time we save thanks to Sonata…

Continue reading →

Configure Xdebug and PhpStorm for a Vagrant project in 5 minutes

August 11, 2016Yann Jacquot3 min read

Warning: this article concerns php5 version. If your PHP version is different, replace php5 by php/X.Y in paths (X.Y is your PHP version) and phpX.Y in command. For example : sudo apt-get install php5-xdebug becomes sudo apt-get install php5.6-xdebug /etc/php5/mods-available/xdebug.ini becomes /etc…

Continue reading →

Guard: Creating a Simple Authentication System for Symfony

April 29, 2016Antoine Kahn4 min read

Building a custom authentication system for Symfony can get atrocious. You can get a glimpse of that here. You have to deal with multiple classes, connect them to each other, and hope for the best. It is hard to customize and never fun to work with. Since Symfony 2.8, to simplify the customization…

Continue reading →

Lost in Symfony XLIFF translations

March 09, 2016Tristan Roussel1 min read

XLIFF? XLIFF is one of the 3 different formats you can use for translation in Symfony. It is the recommended format because of its standard use by professional translators. In Symfony, ids in XLIFF have no particular meaning, all you need is for them to be distinct in the same file. Everything is…

Continue reading →

Symfony 3.0 is out!

December 03, 2015Albéric Trancart3 min read

A new major version is always exciting: when it comes to one of our favorite frameworks like Symfony, it’s Christmas come early for developers. But is is also worrisome. Will my application break? Will I have to rewrite half of my code? Don’t panic! We will go through the 3.0 major version changes…

Continue reading →

JavaScript code to deal with Symfony form collections

October 19, 2015jeanlucc1 min read

Each time you use form collections in Symfony, you need to write some JavaScript. The cookbook If you don't know what form collections are you won't be interested in this article now. However you can read the cookbook out of curiosity and come back read this article later. Doing form collections…

Continue reading →

Ansible and Vagrant stack for Symfony2 projects

October 31, 2014Maxime Thoonsen1 min read

I made a talk at one London Symfony2 meetup about how you can easily build up a nice DevOps environment with Vagrant and Ansible. The slides and the video are available. Feedback is very much appreciated. As we work more and more with Ansible, we have also started a list of our favorites roles we…

Continue reading →

De retour du Symfony Live Paris 2014

April 09, 2014Benjamin Grandfond2 min read

This blog post is in French as the event it relates to is French-only. De retour du Symfony Live Paris 2014 Ces lundi et mardi nous étions au sixième Symfony Live Paris qui se tenait à la Cité Internationale Universitaire de Paris. Theodo y était Sponsor Gold et, si vous y étiez, vous avez…

Continue reading →

Theodo at the SymfonyCon 2013 in Warsaw

January 06, 2014Antoine Haguenauer1 min read

A year ago, 14 brave Theodoers were in Berlin for the Symfony Live 2012. This time, 42(!) of us joined the very best of the Symfony Community at the SymfonyCon 2013 in Warsaw during which we didn't have any time to wonder about the meaning of life, the universe and everything. For three days, the…

Continue reading →

Theodo en force au SymfonyCon Varsovie 2013

January 06, 2014Antoine Haguenauer1 min read

Après le Symfony Live de Berlin 2012, où quatorze Theodoers avaient fièrement porté nos couleurs dans le temple de la communauté Symfony pendant les trois jours de l’événement, ce sont cette année quarante-deux (42 !) d’entre nous qui avons déferlé sur Varsovie sans se poser de questions sur le sens…

Continue reading →

New events doctrine 2.4

November 08, 2013Simon Constans3 min read

Here is an introduction to events in Doctrine and the changes brought by Doctrine 2.4. You will find all the code in this article on the following github repository. Events in doctrine Doctrine launches many events during the lifecycle of an entity. The most commonly used are: prePersist: this event…

Continue reading →

How to manage fixtures in a PHP project

August 08, 2013Benjamin Grandfond5 min read

Dealing with data developing a new application is a real challenge for the development team. You often need them to develop and then test your app. For example, for a login system, you would need different users with roles and permissions in the database in order to test that the configuration is…

Continue reading →

Sharing session between Symfony1 and Symfony2 using Memcache

June 03, 2013Nicolas Thal2 min read

Not long ago, Theodo released it's SessionBundle which aim is to share the session between a symfony1x and a Symfony2 website. On a local server, very little configuration is needed to use this bundle. The sharing is available after a few minutes configuration. When we implemented it on one website…

Continue reading →

Theodo spoke at sfPot Paris

May 17, 2013Simon Constans1 min read

Tuesday, May 14 was held on the monthly Symfony community meetings - sfPot. We were invited to Pépinière 27 by Yoopies. As usual two talks were given and the discussions have continued in a bar. The first lecture was a request from the community. We were asked to speak a little about tests, and…

Continue reading →

How to use lesscss without NodeJs in Symfony2 with Assetic?

April 24, 2013Jonathan Beurel1 min read

Today, we will talk about a little trick: How to use Less when node.js is not available on your server? We will use the latest version of lessphp available at the time of writing this article. You can find the full list of tags on github : https://github.com/leafo/lessphp/tags. Assuming Composer is…

Continue reading →

Integrate legacy session into Symfony2

April 05, 2013Pierre-Henri Cumenge1 min read

We are happy to anounce that the first Theodo Evolution Bundle has been open-sourced. The SessionBundle integrates transparently Legacy PHP Sessions into Symfony2 Our team has been working for a while on the growing issue of migrating legacy applications to Symfony2, as you may have guessed from one…

Continue reading →

Don't overuse dependency injection

February 20, 2013Benjamin Grandfond4 min read

The other day, I stumbled upon the following code that I wrote a few days before. Here is the service definition in the FooBarBundle. The usage of this class is really simple: you call the method getFiles of the service in any part of your application an you'll get an array of files. Here is an…

Continue reading →

sfPot le 8 octobre dans nos nouveaux locaux

October 04, 2012Pierre-Henri Cumenge1 min read

This blog post is in French as the event it relates to is French-only. Theodo accueille le prochain sfPot dans ses tout nouveaux locaux le 8 octobre. Alexandre Salomé nous parlera des performances du framework Symfony2 : chargement des classes, dépendances, services, cache applicatif... Un sujet (ou…

Continue reading →

Forum PHP 2012

July 18, 2012Alix Chaysinh1 min read

As a silver sponsor, we attended Forum PHP on June 5th and 6th. There is a lot to tell about it but for now here’s a quick review of the conferences we went to. On Tuesday: Rasmus Lerdorf brought back the history of PHP and covered all the brand new features of PHP 5.4 Rafael Dohms explained what…

Continue reading →

Symfony Live 2012 Paris report

July 17, 2012Pierre-Henri Cumenge1 min read

Time for a short (and somewhat late) report about the main event for the Symfony (and PHP) community in Paris and of course for us at Theodo: sfLive, which we sponsored and attended. SfLive gathered around 600 people this year. On the whole the organization was great, with only one minor issue: the…

Continue reading →

Next PHP event sponsored by Theodo

July 12, 2012Remy Luciani1 min read

This Thursday 12/07, the French Association of Php Users (AFUP) holds a meeting in Paris, sponsored by Theodo. Julien Pauli (Software Architect & Lead Developper at Comuto) and Hugo Hamon (Trainings Manager & Symfony2 Developer at Sensio Labs), will discuss design-patterns and anti-patterns in PHP…

Continue reading →

Get objects and related count in one shot

July 29, 2011Benjamin Grandfond3 min read

Sometimes you just need to output the number of objects related to another, but this simple operation can be a major blow performance-wise. I hope this trick I use a lot in my symfony + doctrine developments will save you some time. Let's consider a blog that allows you to tag your posts: You can…

Continue reading →

DevOps conference online!

April 11, 2011Fabrice Bernhard1 min read

My conference about adopting DevOps philosophy on Symfony projects is now online! In this presentation you will see what I think is the philosophy behind the DevOps movement and how to start with the 4 important aspects of adopting DevOps: Configuration Management with Puppet Development on the…

Continue reading →

Symfttpd: symfony's long-awaited lightweight server

December 10, 2010Laurent Bachelier3 min read

A project is never finished, and at Theodo we often have to quickly alter a project, in a small way. The issue is that the time required to having the project ready on a developer's machine can be greater that the time required to do the the rest! But worse, setting up a project is boring. This is…

Continue reading →

More with symfony: a whole chapter devoted to the sfFacebookConnect Plugin

December 02, 2009Fabrice Bernhard1 min read

December just started, and with it its usual christmas spirit, Santa Claus, happy children and.... the symfony advent calendar! This year the symfony advent calendar is a collection of articles written by different symfony experts: http://www.symfony-project.org/blog/2009/12/01/one-more-thing and is…

Continue reading →

A Facebook Connect plugin for symfony

August 24, 2009Fabrice Bernhard1 min read

As promised during the last symfony live conference, I finally release my current work on a Facebook Connect Plugin for symfony. It is inspired by the good sfFacebookPlugin by Jonathan Todd, which has however been unmaintained for quite some time. Since Facebook's platform is evolving every week and…

Continue reading →

sfEasyGMapPlugin 1.0.4 out

June 02, 2009Fabrice Bernhard1 min read

sfEasyGMapPlugin 1.0.4 is out and the good news is : the plugin is the 24th most used symfony plugin among the 457 available on http://www.symfony-project.org/plugins/ ! We are now 5 official developers, not counting all the developers I work with who contribute indirectly. It all started because I…

Continue reading →

Symfony Google Maps API plugin : sfEasyGMapPlugin v1.0 is out!

March 13, 2009Fabrice Bernhard1 min read

sfEasyGmapPlugin is a very easy to use Google Maps API plugin for symfony, inspired by the Phoogle class... but better :-) A very simple version has been available for a few months but I have now finally released the 1.0 version, with the following new features : - it is now sf1.2 compatible…

Continue reading →

Integrate Wordpress into symfony

March 06, 2009Fabrice Bernhard5 min read

What better topic to start this technical blog about symfony than to talk about my experience of integrating Wordpress into symfony ! I was looking for a nice blogging solution for symfony, and all I found was a very simple plugin and a lot of people encouraging me to build my own blog. Even though…

Continue reading →