Warning: You are browsing the documentation for PrestaShop 1.7, which is outdated.

You might want to read an updated version of this page for the current version, PrestaShop 8. Read the updated version of this page

Learn how to upgrade to the latest version.

How to migrate Back Office pages to Symfony

Migrating a legacy page in PrestaShop requires working on three parts of the application: templates, forms and controllers which contain the business logic.

Strategy / To-do List

This is the list of items that usually need to be done in order to complete the migration of a legacy controller.

  • Creations
    • Create PrestaShopBundle/Controller/<path>/<Your>Controller
    • Create related actions (functions matched to URIs)
    • Declare routing in PrestaShopBundle/Resources/config/routing/admin/routing_*.yml file
    • Create Symfony form types for each form available in pages
    • Create and configure Javascript (using Webpack/ES6) file
    • Create every twig blocks in views/<path>/*.html.twig
    • Implement Forms submission
    • Implement Forms validation
    • If required, implement (request) Parameters update
    • Check Error Handling
    • Checks permissions and demo mode constraints
    • Re-introduce hooks (and document the missing one if you can’t for a good reason)
    • Complete Link class to map PrestaShop menu to the new page
    • Create the smoke/survival tests for the migrated page
  • Deletions
    • Remove the old controller in controllers/admin/Admin*.php
    • Remove related old templates (in admin-dev/themes/default/template/controllers/*)

Contents of this guide

Next: Migration project and strategy ›