Core Concepts
The right mental models make Drupal work predictable. This section gives short, focused explanations of the systems every Drupal developer touches, how core itself uses them, and the misconceptions that trip people up. Each concept links to the how-to guides that put it into practice and to the full reference on api.drupal.org.
Start here
Section titled “Start here”The systems you touch in your first week of Drupal development: where data lives, who can do what, and how your code plugs into core.
Entities, bundles, and fieldsDrupal's data model: content versus configuration entities, bundles, fields, and why almost everything in Drupal is an entity.
Config, content, state, and sessionsFour kinds of data and where each lives: exportable configuration, content entities, per-environment state, and per-user session data.
The access modelPermissions, roles, access checks on routes and entities, and how access results combine and cache.
PluginsThe pattern behind blocks, field types, and views handlers: discovery via attributes, plugin managers, and derivatives.
Services and dependency injectionThe service container, when and how to inject dependencies, and how to define and decorate your own services.
Hooks and eventsHow modules react to and alter core behavior: Hook attribute classes, event subscribers, and when to use which.
Advanced
Section titled “Advanced”How Drupal works under the hood. Read these when you need to debug a request, control rendering, tune caching, or build for more than one language.
Request lifecycleWhat happens between an HTTP request and a rendered page: the kernel, routing, controllers, and the render pipeline, end to end.
Render API and theming pipelineRender arrays from controller to HTML: theme hooks, templates, preprocessing, and where themes get to intervene.
CachingCache tags, contexts, and max-age: Drupal's cacheability metadata system and how to keep dynamic pages fast and correct.
Multilingual foundationsHow language works across content, configuration, and the interface, and what it means for the code you write.
Was this page helpful?
Drupal is a registered trademark of Dries Buytaert.