Code & Development

Reinventing core's handler system in Group for more flexibility

The entity handler system in core is great: It allows us to have service-like classes that deal with specific tasks for specific entity types without turning the actual entity type's class into a monolithic pile of bloat. But it has one major downside: the handlers are defined with strings, more specifically a reference to a class.

Speaker(s)

kristiaanvandeneynde

Experience level

Expert

Session track

Code & Development

Modular configuration management in Drupal 8

The configuration management system is one of the best upgrades added to Drupal 8 core. I have been working on a project for the past few months in which we have multiple installation profiles to create collections of websites. 

I have learned a few valuable lessons during this project and I hope they will be beneficial to the audience.

The objectives of the session will be to understand

Speaker(s)

sushyl

Experience level

Expert

Session track

Code & Development

Advanced permissions system with Groups

While working on rebuilding a Royal College platform in the United Kingdom, we were tasked with a challenge on how to manage permissions where Groups played a major role in granting the correct access.

Having several entities in play, different roles in different Group types, with various fields from those entities deciding on the logic when granting access to a certain entity, the number of components used in the system quickly grew.

The system also had to plug into several other components the platform used such as Search API, Views API, Plugin API.

Speaker(s)

jzavrl

Experience level

Expert

Session track

Code & Development

Fediverse, ActivityPub... and Drupal

You probably will have come across Mastodon, Pixelfed or Peertube. The Fediverse is a growing set of decentralized sites for distributing content. These are but a few of the platforms that already share content using ActivityPub as an open standard. First, this session will introduce the growing ecosystem that already exists.

 

Speaker(s)

ekes

Experience level

Beginner

Session track

Code & Development

Drupal.org GitLab Acceleration Update

The team behind Drupal.org began a study of developer tools in 2017, migrated our backend services to GitLab in 2019, and has ramped up to enable merge requests for the project in 2020. But we’re not taking the tools right off the shelf, we’re tuning them to the Drupal community’s collaboration style. Join us for this session to learn how we’re doing it.

Speaker(s)

drumm

Experience level

Beginner

Session track

Code & Development

An introduction to what's behind PHP static code analysis

I love to use static code analysis tools like PHPStan.
I also love to know how things work.

So I wondered: how does static code analysis work? What's behind those tools?

In this talk we'll cover the basics of how static code analysis works in the PHP world.

Don't be afraid! No need to have a mathematical background, or a deep knowledge of PHP.

Resources:

Speaker(s)

beram

Experience level

Beginner

Session track

Code & Development

Do you know what your Drupal is doing? Observe it!

Our Drupal 8 websites are true applications, often very complex ones.
More and more workload is delegated to external systems, usually microservices, that are used for many different tasks.
Architectures are always more distributed and fragmented.

To trace the lifecycle of a single request that origins in a client, passes throught all Drupal subsytems, reaches external (micro)services and comes back will become mandatory to track down problems and to optimize for performances. This is often time consuming and without the right tools may became very difficult.

Speaker(s)

lussoluca

Experience level

Intermediate

Session track

Code & Development

Protected Content by Asymmetrical Client Side Encryption

Working intramurus of an European institution for the last 3 years as software architect in a Drupal team, approximately 1 year ago I've been given a task with this very broad scope: provide an encryption layer strong enough to protect sensitive data from never ever leaking.

Speaker(s)

panchiniak

Experience level

Intermediate

Session track

Code & Development

Progressive Web Apps in a Drupal world

A Progressive Web App (PWA) offers some appealing features, such as offline available content, push notifications and installable apps without the hassle of creating an app. For a while now, people have been blogging that PWAs are "the next big thing". I'm not sure if that really is true, but at least we now see clients actively asking for it!

Although PWAs are often associated with JS frameworks and decoupled setups, you can also add one on top of a standard Drupal installation, using the PWA module.

Speaker(s)

marcvangend

Experience level

Intermediate

Session track

Code & Development

Let's get you geared up to tackle legacy code

The first step of working with legacy code is realizing the incredible amount of value that has dropped in your lap.
In this talk, we are going to pinpoint that value. And move that value in a better to maintain and understand codebase.

First, we will cover the general mentality that will make it easier to prepare a plan of attack.
Next up are more technical tips that will make it easier to talk about the code.
We will end off the session by actually porting a small piece of code.

Session video:

Speaker(s)

vanbrabantf

Experience level

Intermediate

Session track

Code & Development