Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Coming from Symfony

A guide for Symfony developers - what maps directly (front controller, kernel events, console, Twig-like templates, bundles) and what does not (container, routing, Doctrine, Forms, Security), the habits to keep and to…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/web-framework-developers/coming-from-symfony.md

On this page

Coming from Symfony

This page is for developers who build with Symfony. Many Exponential concepts have a Symfony counterpart, a few do not, and there is a Symfony-based Exponential product line if you want to stay in Symfony entirely. Read it with the concept dictionary at hand.

Contents

  1. What maps directly
  2. What works differently
  3. Habits to keep, habits to drop
  4. Your first week
  5. Staying in Symfony

What maps directly

SymfonyExponential 6Page
public/index.php, Kernel::handle()index.php, ezpKernel with ezpKernelWebThe request lifecycle
kernel.request, kernel.response listenersrequest/input listeners, response/output filtersEvents and listeners
bin/console, #[AsCommand]bin/php/console, Exponential\Runnable\CommandCommand line
bundles, config/bundles.phpextensions, ActiveExtensions[]Packages
APP_ENV, when@prodEXP_ENV, settings variantsEnvironments
MessengerexpqueueQueues
Translation component.ts catalogues, i18n operatorTranslations
Web profilerExp debug barDebugging

What works differently

SymfonyExponential 6Page
DependencyInjection container, autowiringno container; handler classes named in INI, factoriesDependency injection
Routing component, attribute routes/<module>/<view> declared in module.php; URL aliases for contentRouting
Controllers returning Responsemodule views returning a $Result arrayControllers
Twig with extends and blocks, auto-escapingthe template language with overrides, |wash by handThe view layer
Doctrine entities and migrationscontent classes; eZPersistentObject; .dba schema filesORM, Migrations
Form componenttemplates, module actions, ezformtokenForms
Security: firewalls, voterslogin handlers, roles and policies stored as dataAuthorization
YAML configurationINI files in layersConfiguration
HttpCache, ESIrole-aware HTTP cache, Velocity response cache; no ESIHTTP caching

Habits to keep, habits to drop

Keep: thin controllers with logic in services, constructor parameters for testability, PHPUnit, environment-specific configuration, never committing secrets, one command per deploy step.

Drop: looking for a container to register services in; expecting auto-escaping; writing an entity and a migration for something editors manage (make it a content class); configuring the same value in five layers without checking exp:ini where; assuming a fresh process per request (Velocity keeps workers, as RoadRunner would).

Your first week

  1. Install a development copy (./console exp:install --apply) and read Exponential for web framework developers.
  2. Day two: The request lifecycle, Siteaccesses, Configuration.
  3. Day three: Task: build a small CRUD module.
  4. Day four: The content model for ORM users and Template resolution.
  5. Day five: Servers and deployment and Testing.

Staying in Symfony

If your project must be a Symfony application, two routes exist:

  • Exponential Platform DXP is a Symfony-only CMS, built like any Symfony project (The platform products).
  • The legacy bridge runs Exponential 6 inside a Symfony platform project, so editors keep the legacy administration while you write Symfony code and Twig (The Symfony legacy bridge).

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x