Entity Pilot - content staging for Drupal 8


  • Download and extract the module
  • Add the php-encryption library using composer or Composer manager.
    • For composer - from your Drupal installation directory run composer require "defuse/php-encryption:~1.2.
    • For Composer manager, refer to its documentation

Getting started

Creating a content entity type in Drupal 8

This page provides an example of how to create a content entity type, with administration management pages, for Drupal 8.

We will create a 'Contact' entity to add, edit and delete People (Contacts). It is fully fieldable and uses most of the new entity concepts available in Drupal 8.

Note: This code corresponds to the ContentEntityExample of the Drupal Examples Module. You can download it from https://www.drupal.org/project/examples.

Set up module


Create a custom content and configuration entity

This explains how to create a node-like entity in Drupal 8. That means that we'll create one configuration entity(FooType) which will serve as type or bundle for our second entity(Foo) which is a content entity and will represent the node itself. The content entity will also support revisions and translations(not yet tested).

2015-04-29 WARNING: This page is more than "needs updating" : most of its content is obsolete, since entity definitions are now provided using annotations-based plugins, the schema is no longer created manually using hook_schema(), permissions are now defined in <module>.permissions.yml, some global scope functions in the examples have been removed, and the <module>.routing.yml format has changed a bit too.

Working with the Entity API

This covers the generic entity API, configuration entity and content entity specific API's will be covered in specific chapters. TODO: Link once created.


// Make sure that an object is an entity.
if ($object instanceof \Drupal\Core\Entity\EntityInterface) {

// Make sure it's a content entity.
if ($entity instanceof \Drupal\Core\Entity\ContentEntityInterface) {

// Get the entity type.

// Make sure it's a node.
if ($entity instanceof \Drupal\node\NodeInterface) {

// Using entityType() works better when the needed entity type is dynamic.
$needed_type = 'node';
if ($entity->entityType() == $needed_type) {

Get information from an entity/ Entity methods

A number of generic methods are available to get information from an entity, like the ID, bundle, revision ID and so on. See the documentation on the EntityInterface for details.

// Get the ID.

// Get the bundle.

// Check if the entity is new.

// Get the label of an entity. Replacement for entity_label().

// Get the URI for an entity.
// n@todo: This might still change with the new URI template API.

Entity API - Drupal 8

For the Drupal 7 Entity API: Go here.


The Entity System was introduced late in the Drupal 7 development cycle with basic standards for how entities were loaded. The contributed entity.module expanded the API further by adding support for saving and deleting entities and many other improvements.

Programming Drupal 7 Entities

Cover image for this book
Expose local or remote data as Drupal 7 entities and build custom solutions.
Packt Publishing
Publication date: 
Page count: 

What you will learn from this book

  • Manipulate and utilize comment, file, field collection, node, term, user, and vocabulary entities
  • Attach, manipulate, and utilize date, file, image, link, number, text, and term reference fields
  • Write type-agnostic code dealing with more types of Drupal data than ever before
  • Upgrade a legacy Drupal node module to expose and utilize entities
  • Expose your legacy database tables as fully-fledged Drupal entities
  • Batch import remote data and expose them as entities
  • Glean good coding practices for dealing with entities

In Detail

Writing code for manipulating Drupal data has never been easier! Learn to dice and serve your data as you slowly peel back the layers of the Drupal entity onion. Next, expose your legacy local and remote data to take full advantage of Drupal's vast solution space.

Programming Drupal 7 Entities is a practical, hands-on guide that provides you with a thorough knowledge of Drupal's entity paradigm and a number of clear step-by-step exercises, which will help you take advantage of the real power that is available when developing using entities.

This book looks at the Drupal 7 entity paradigm, and breaks down the mystery and confusion that developers face when building custom solutions using entities. It will take you through a number of clear, practical recipes that will help you to take full advantage of Drupal entities in your web solutions without much coding.

You will also learn how to expose local and remote data to give your legacy data new life as fully-fledged Drupal entities that can be used by other modules such as views, rules, and so on. In addition to this, you'll learn to create, retrieve, update, and delete (CRUD) entities, their properties and fields, along with some programmatic wizardry to manipulate complex entities such as field collections. If you want to develop quickly and easily using Drupal entities, then this is the book for you.

You will learn everything you need to know to develop code and expose data using entities in Programming Drupal 7 Entities.


The book follows a standard tutorial-based approach to create, retrieve, update, and delete Drupal 7 entities, their properties and fields.

Who this book is for

Programming Drupal 7 Entities is perfect for intermediate or advanced developers new to Drupal entity development who are looking to get a good grounding in how to code using the new paradigm. It’s assumed that you will have some experience in PHP development already, and being vaguely familiar with Drupal, GIT, and Drush will also help.


Subscribe with RSS Subscribe to RSS - entity api