Coming from TYPO3
This page is for developers who know TYPO3 and start an Exponential project. Both systems are built around a tree, so the start is easy; the difference is that in TYPO3 a page is a container of content elements, while in Exponential every item, page or not, is a typed object in the tree. This page compares concepts only and does not rank the two systems.
Contents
- The tree, seen from both sides
- Concept by concept
- Content elements and backend layouts
- TCA, TypoScript and settings
- Fluid and the template language
- Extensions and the scheduler
- Moving a TYPO3 site
The tree, seen from both sides
In TYPO3 the page tree holds pages, and records such as news or addresses are usually kept in storage folders (sysfolders) and shown on pages by plugins. In Exponential the content tree holds every object: a news article is a node in a news folder, and its node is also its page, with its own URL. A list of news on another page is a fetch in a template or a Layouts block, not a plugin that reads records from a folder (Objects, nodes and locations).
Content that should not have a page of its own (for example shared snippets) can still live in a folder of the tree and be embedded or related; hide that folder or keep it outside the site's root node.
Concept by concept
| In TYPO3 | In Exponential | Read |
|---|---|---|
| Page in the page tree | object of a container class (folder, landing page) | The content model |
| Record type defined in TCA | content class | Content classes and attributes |
| TCA column and its type | class attribute and datatype | Choosing datatypes |
| Storage folder | a folder in the tree, often in its own section | Sections, roles and policies |
| Content element in a column | rich text in the page object, or blocks in a layout zone | Layouts for CMS developers |
| File references (FAL) | image and file objects, related or embedded | Images and image aliases |
| Categories | eztags, or folders | Relations and embeds |
| Backend users, groups and access lists | users and groups as content, roles with policies | Users and registration |
| Languages in site configuration | content languages and siteaccesses | Translations and languages |
| Site configuration (sites, base URLs) | siteaccesses and their matching rules | Siteaccesses and multisite |
| Workspaces | versions, drafts, object states and approval workflows | Versions, drafts and publishing |
| Speaking URLs (slugs) | URL aliases | URL aliases and routing |
Content elements and backend layouts
A TYPO3 page arranges content elements in the columns of a backend layout. Exponential offers two ways for the same need:
- Structured classes. An article has a title, an intro, a rich text body and an image as attributes; its layout is the template. Most pages of a site are built this way.
- Exponential Layouts. A layout type defines zones; editors place blocks (text, images, lists of content, teasers) in them, and rules decide which pages use which layout. This is the closest match to backend layouts with content elements (Layouts for CMS developers, Two ways to build).
TCA, TypoScript and settings
TCA defines record types and fields in PHP arrays; in Exponential that definition is the class, made in the
administration and carried between installations in packages
(Creating a content class). TypoScript configures rendering and many settings; in
Exponential configuration is INI files, with shipped defaults in settings/, global overrides in settings/override/,
per-siteaccess settings in settings/siteaccess/<name>/ and extension settings in extension/<ext>/settings/
(Settings and INI for CMS developers). Rendering decisions that TypoScript
would make live in templates and override rules.
Fluid and the template language
Fluid templates use XML-like view helpers. Exponential templates use a brace syntax with functions and operators
({if}, {foreach}, {def}, |wash(), fetch()), and the template for a piece of content is chosen by override
rules that match its class, node, parent, section or view mode
(Templates and overrides for CMS developers). Partials and layouts
correspond to {include} and to the pagelayout, the outer template of every page
(The pagelayout).
Extensions and the scheduler
| TYPO3 | Exponential |
|---|---|
Extension (ext_emconf.php, Composer) | extension folder with extension.xml, ezinfo.php and composer.json (Extensions you will write) |
| Extbase plugin with a controller | a module with views (Modules and views) |
| ViewHelper | template operator or function (Template operators) |
| Signals, PSR-14 events, hooks | event listeners and workflow events (Workflows and triggers) |
| Scheduler tasks | cronjob scripts in cronjob parts (Cronjobs) |
typo3 command line | ./console and bin/php/*.php |
| Clear caches in the backend | Setup > Caches, or php bin/php/ezcache.php (Caching for CMS developers) |
Moving a TYPO3 site
This documentation has no TYPO3-specific migration guide and names no tool that reads TYPO3 data directly. Use the general method for other systems: export the records to CSV, XML or JSON (for example from the database or with a TYPO3 extension of your choice), map them with Mapping content to Exponential, and import them with the tools in Other applications and databases and Importing content. Plan the redirects from the old speaking URLs (checklist).
Related pages
- Exponential for CMS developers
- Coming from Drupal
- Planning a migration (trainers' course)
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
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.