Basic structure of Drupal 8

Last updated on
10 September 2017

Drupal 8 is built on the DrupalKernel, and a number of


  • Annotation
  • Assertion
  • Bridge
  • Datetime
  • Diff
  • Discovery
  • EventDispatcher
  • FileCache
  • Gettext
  • Graph
  • HttpFoundation
  • PhpStorage
  • Plugin
  • ProxyBuilder
  • Serialization
  • Transliteration
  • Utility
  • Uuid

Components MAY depend on other Drupal Components or external libraries/packages, but MUST NOT depend on any other Drupal code.
On top of the Kernel and the Components is built the base system. These are broken down into


These subsystems MAY depend on Drupal Components and other Subsystems, but MAY NOT depend on any code in a module.
And there are the

core modules:

  • action: used to perform tasks on specific events triggered within the system.
  • aggregator: Aggregates syndicated content (RSS, RDF, and Atom feeds) from external sources.
  • automated_cron: The existing cron system but ported as separate module in Drupal 8 to allow sites that don't use it at all not have any overhead from it.
  • ban: Enables banning of IP addresses.
  • basic_auth: Provides the HTTP Basic authentication provider
  • block: provides the admin UI for placing blocks in regions and configuring their settings.
  • block_content: Allows the creation of custom blocks through the user interface.
  • book: Allows users to create and organize related content in an outline.
  • breakpoint: Manage breakpoints and breakpoint groups for responsive designs.
  • ckeditor: WYSIWYG editing for rich text fields using CKEditor.
  • color: Allows administrators to change the color scheme of compatible themes.
  • comment: Allows users to comment on and discuss published content.
  • config: Allows administrators to manage configuration changes.
  • config_translation: Provides a translation interface for configuration.
  • contact: Enables the use of both personal and site-wide contact forms.
  • content_translation: Allows users to translate content entities.
  • contextual: Provides contextual links to perform actions related to elements on a page.
  • datetime: Defines datetime form elements and a datetime field type.
  • datetime_range: Provides a Date field that stores start dates and times, as well as end dates and times.
  • dblog: Logs and records system events to the database.
  • dynamic_page_cache: It caches pages minus the personalized parts. It is recommended for websites of all sizes.
  • editor: Provides a means to associate text formats with text editor libraries such as WYSIWYGs or toolbars.
  • entity_reference: Provides a field that can reference other entities.
  • field: Field API to add fields to entities like nodes and users.
  • field_ui: User interface for the Field API.
  • file: Defines a file field type.
  • filter: Filters content in preparation for display.
  • forum: Provides discussion forums.
  • hal: Serializes entities using Hypertext Application Language.
  • help: Manages the display of online help.
  • history: Records which user has read which content.
  • image: Defines an image field type and provides image manipulation tools.
  • language: Allows users to configure languages and apply them to content.
  • link: Provides a simple link field type.
  • locale: Translates the built-in user interface.
  • menu_link_content: Allows administrators to create custom menu links.
  • menu_ui: Allows administrators to customize the site navigation menu.
  • migrate, migrate api: Handles migrations
  • migrate_drupal: Contains migrations from older Drupal versions.
  • node: Allows content to be submitted to the site and displayed on pages.
  • options: Defines selection, check box and radio button widgets for text and numeric fields.
  • page_cache: Internal page cache that caches pages for anonymous users, recommended for small to medium-sized websites.
  • path: Allows users to rename URLs.
  • quickedit: In-place content editing.
  • rdf: Enriches your content with metadata to let other applications (e.g. search engines, aggregators) better understand its relationships and attributes.
  • responsive_image: Provides an image formatter and breakpoint mappings to output responsive images using the HTML5 picture tag.
  • rest: Exposes entities and other resources as RESTful web API
  • search: Enables site-wide keyword searching.
  • serialization: Provides a service for (de)serializing data to/from formats such as JSON and XML
  • shortcut: Allows users to manage customizable lists of shortcut links.
  • simpletest: Provides a framework for unit and functional testing.
  • statistics: Logs content statistics for your site.
  • syslog: Logs and records system events to syslog.
  • system: Handles general site configuration for administrators.
  • taxonomy: Enables the categorization of content.
  • telephone: Defines a field type for telephone numbers.
  • text: Defines simple text field types.
  • toolbar: Provides a toolbar that shows the top-level administration menu items and links from other modules.
  • tour, tour api: Provides guided tours.
  • tracker: Enables tracking of recent content for users.
  • update: Checks for available updates, and can securely install or update modules and themes via a web interface.
  • user: Manages the user registration and login system.
  • views: Create customized lists and queries from your database.
  • views_ui: Administrative interface for Views.