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 Drupal

For Drupal developers, how content types and fields, nodes, taxonomy, Views, blocks, modules and hooks, Twig themes, configuration management and Drush map to Exponential. It also covers the false friends to watch for…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/cms-developers/coming-from-drupal.md

On this page

Coming from Drupal

This page is for developers who know Drupal and start an Exponential project. Drupal developers already think in content types and fields, so the content model will feel familiar; the differences are in the words, in how templates are chosen and in where configuration lives. This page compares concepts only and does not rank the two systems.

Contents

  1. False friends
  2. Concept by concept
  3. Views and blocks
  4. Modules and hooks
  5. Themes and Twig
  6. Configuration and Drush
  7. Moving a Drupal site

False friends

WordIn DrupalIn Exponential
nodea content entity: one article, one pagea location of a content object in the tree; the content itself is the object
modulean add-on packagea group of pages (views) under one URL prefix, such as content or user; add-ons are extensions
viewa configured query and display (Views)a page of a module (content/view), and a view mode such as full or line
blocka placeable piece of output in a regiona block of Exponential Layouts, placed in a zone of a layout
section(not a core concept)a label on content used by permissions and template rules

Keep the first row in mind: in Exponential, $node in a template is the place in the tree, and $node.object is the content (Objects, nodes and locations).

Concept by concept

In DrupalIn ExponentialRead
Content type (node bundle)content classContent classes and attributes
Field and field typeclass attribute and datatypeChoosing datatypes
Entity reference fieldezobjectrelationlistRelations and embeds
Paragraphschild objects of small classes, or Layouts blocksDesigning a content model
Taxonomy vocabulary and termseztags, or folders in the treeChoosing datatypes
Menu links, book outlinethe content tree and its sort orderObjects, nodes and locations
Revisions and content moderationversions, object states, approval workflowsVersions, drafts and publishing
Content translationtranslations of the same objectTranslations and languages
Roles and permissionsroles with policies and limitationsSections, roles and policies
Path aliases, redirectsURL aliases, URL wildcardsURL aliases and routing
Webforminformation collectionForms and information collection
Multisitesiteaccesses on one installation and one databaseSiteaccesses and multisite
JSON:API, RESTthe REST interface of ezprestapi, expservicesThe REST API

Views and blocks

A Drupal View is configuration that builds a query and a display. In Exponential the query is a fetch function called in a template (fetch( 'content', 'list', hash( ... ) )), and the display is that template (Fetching content in templates). Editors who need to configure lists themselves use Exponential Layouts: a block with a collection that is filled by hand or by a query, placed in a zone of a layout, without code (Layouts for CMS developers). The two ways meet in template blocks (Two ways to build).

Modules and hooks

A Drupal module implements hooks or subscribes to events. An Exponential extension uses precise extension points:

Drupal habitExponential
hook_entity_presave, hook_node_inserta workflow event on the publish trigger, or an event listener (Workflows and triggers)
A route and a controllera module with a view (module.php, a view script) (Modules and views)
A permission in *.permissions.ymla policy function of your module (Policy functions and access)
A Twig filter or functiona template operator or function (Template operators)
hook_crona cronjob script in a cronjob part (Cronjobs)
A field type plugina datatype (Datatypes)

Themes and Twig

Drupal themes use Twig with template suggestions such as node--article--full.html.twig. Exponential designs use its own template language (.tpl), and the "suggestions" are explicit override rules in override.ini that match class, node, parent, section, view mode and more (Templates and overrides for CMS developers). View modes exist in both systems with the same idea: full, line and your own (View modes). Designs fall back through a chain of designs, much like a base theme (The design chain).

Configuration and Drush

DrupalExponential
settings.phpsettings/override/site.ini.append.php and the siteaccess folders
Configuration export (YAML)INI files in your extension, under version control; classes and content in packages
drush crphp bin/php/ezcache.php --clear-all or targeted --clear-id / --clear-tag
drush commands./console and bin/php/*.php
drush config:get / config:set./console exp:ini get / exp:ini set

Classes live in the database, as Drupal's content types live in active configuration; to version them, export them in packages (Content classes and attributes).

Moving a Drupal site

The migration guide covers JSON:API and the Migrate API, mapping, paragraphs, path aliases and redirects: Drupal and Exponential. The trainer's lesson is From Drupal and Joomla, and the tools that import the result are in Importing content.

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