The legacy FO controller initialization
Here, we will do reverse engineering of a legacy FO controller. As seen in Chapter 1, Quick Overview of PrestaShop, when you visit a public page of a PrestaShop website, it is managed by a controller using an ObjectModel
child object for the database interactions and generating the view with a Smarty template (MVC pattern).
For this practical study, we will focus on how the system initializes and handles a front-page call from the URL request to the controller instantiation.
Let’s do it with a product category page example. When you browse the FO, it’s a product listing page. Indeed, in PrestaShop, a Category is the entity responsible for displaying groups of products.
Initializing a Category FO controller
By default, when URL rewriting is on, the category page URLs are structured like this: https://www.urlofthewebsite.extension/categoryId-name
, with categoryId
as an integer and name
as the slug of the category name...