Articles

This interface operates at the intersection of the Cache API and Response. Since it is primarily a response, this is where the core information resides.
See also


Route access checkers, hook_entity_access()
, and anything that is expected to return an AccessResultInterface
object must add appropriate cacheability metadata.
If you haven’t yet, read about cache tags, cache contexts, and max-age.


The CKEditor API is new in Drupal 8.
Note that this only applies to the CKEditor module API in Drupal 8, not the CKEditor JavaScript library API – for that, see http://docs.ckeditor.com/.
For more detailed information about what this module does, see the Text Editor module documentation.
API Features
Organized by least commonly used APIs:
CKEditor Skins


The Configuration API provides a central place for modules to store configuration data. This data can be simple configuration, such as your site name, or more complex information managed via configuration entities, such as views and content types.
Configuration is the place to store information that you want to synchronize from development to production. This information is often created during site building and typically not generated by regular users during normal site operation.


Drupal 8 includes several types of information:
- Content
Information intended for display on your site and editable by users: articles, basic pages, images, files, etc.
- Session
Information about individual user interactions with the site, such as their current filter selection in views. This is ephemeral and personalized to one user.


By default, configuration information in Drupal 8 is stored in the database.
Configuration File Format (YAML)
Extensions (modules, themes, and profiles) provide configuration data in YAML files.
Here's an example of a configuration file:
some_string: 'Woo kittens!' some_int: 42 some_bool: true
Configuration can also be nested. Here's an example:


Drupal 8's configuration system handles configuration in a unified way. By default, Drupal stores configuration data in the database, but it can be exported to YAML files for version control. However, there are scenarios where configuration values need to be overridden for specific purposes. In Drupal 7, this was done using the global $conf variable, often populated in settings.php for conditional overrides. A major drawback of that system was that overrides would be saved into the actual configuration storage.


Drupal 8 includes support for a configuration schema/metadata language based on Kwalify (http://www.kuwata-lab.com/kwalify/) for YAML configuration files. Kwalify itself is written in Ruby and required some modifications for our purposes, so not all Kwalify details apply directly, but it's quite close.
Cheatsheet
For a quick understanding and some helpful examples, refer to this cheat sheet, and continue reading if you still have questions:


Configuration objects can declare dependencies. A dependency can be a module, theme, or entity.
A configuration object’s dependencies must be present before the configuration object can be installed. If the required dependencies are missing on the site, the configuration object will fail to install. A module must declare in its module info YAML file any module or theme dependencies required by its configuration objects.
