Book Image

Drupal 10 Module Development - Fourth Edition

By : Daniel Sipos
Book Image

Drupal 10 Module Development - Fourth Edition

By: Daniel Sipos

Overview of this book

Embark on a journey of Drupal module development with the latest edition of this must-have guide written by Daniel Sipos – a Drupal community member! This fourth edition is meticulously revised to cover the latest Drupal 10 enhancements that will help you build custom Drupal modules with an understanding of code deprecations, changing architecture, data modeling, multilingual ecosystem, and so on. You’ll begin with understanding the core components of Drupal 10 architecture, discovering its subsystems and unlocking the secrets of creating your first Drupal module. Further, you'll delve into Drupal logging and mailing systems, creating theme hooks, and rendering a layout. As you progress, you'll work with different types of data storage, custom entities, field types, and work with Database APIs for lower-level database queries. You'll learn to reap the power of JavaScript and ensure that your code works seamlessly on multilingual sites. You'll also learn to create custom views, automate tests for your functionalities, and write secure code for your Drupal apps. By the end of this book, you'll have gained confidence in developing complex modules that can solve even the most complex business problems and might even become a valuable contributor to the Drupal community!
Table of Contents (21 chapters)
3
Chapter 3: Logging and Mailing

TypedData

To really understand how entity data is modeled, we need to understand the TypedData API. Unfortunately, this API remains quite a mystery for many. But you’re in luck because, in this section, we’re going to get to the bottom of it.

Why TypedData?

It helps to understand things better if we first talk about why this API was needed in the first place. It all has to do with the way PHP as a language is, compared to others, and that is, loosely typed. This means that in PHP, it is very difficult to use native language constructs to rely on the type of certain data or understand more about that data. The difference between the string "1" and integer 1 is a very common example.

Since PHP 7, we have type-hinting for scalar values in function parameters, which is good, but still not enough. Scalar values alone are not going to cut it if you think of the difference between 1495875076 and 2495877076. The first is a timestamp while the second is an integer...