Symfony and PrestaShop

PrestaShop is a popular eCommerce platform built on the LAMP stack. Since it's inception in 2005 it has gone through a number of iterations, despite only being in version 1.6 currently.

The latest larger revamp of the software was done version 1.5, launched in mid-2012. In 2015 the team decided to make Symfony a large part of the next major version of PrestaShop, 1.7.

With this move PrestaShop joins a growing number of PHP projects (including other eCommerce Platforms) taking Symfony into their product core. Out of the different ways of using Symfony, PrestaShop has opted to gradually take on the Symfony Framework.

This is similar to the eZ Publish 5 refactoring which used the framework, but providing a compatibility layer to the 4.x series (see eZ Publish 5 Architecture) and finally removing the legacy layer completely with eZ Platform.

This allows the PrestaShop team to gradually modernize their PHP application while keeping backwards compatibility, which is essential when you're a company building a product. They need to keep their business running even as you move forward without alienating existing developers.

The latter is difficult as there will essentially be two systems for a while, potentially raising the learning curve due to added complexity. As a new developer, I'm not sure would be interested in learning two templating systems:

Module developers won’t need to develop in Symfony for now: the module API remains mostly the same, and Smarty is still used in non-rewritten pages. It will be necessary to use Symfony’s Twig templating engine for modules that target the rewritten pages, but the core code of the module should remain the same.

The road they've taken is not short a shortcut to happiness, but as eZ Systems and Drupal have shown it is not just a theoretical way forward, but a practical way to share knowledge and code from a larger pool of developers.

And as a developer familiar with Symfony, I am already more inclined to working with PrestaShop rather than WooCommerce or Magento because of the lower learning curve in the future.

Read more about PrestaShop and Symfony:

Written by Jani Tarvainen on Sunday January 10, 2016

Permalink - Tags: symfony, ecommerce, prestashop