Skip to main content
I

was googling around and came around this worth doing task from D8 cards.

In this article we will discuss and implement the 21 nice topics suggested by D8 Cards. 

Card 1 - Configuration Management

API Change: No more features! Configuration exports to YML.

Card Challenge: Import and export configuration

Card 2 - Paragraphs module

Card Challenge: Create some paragraphs

Card 3 - Configuration forms

API change: Forms are now a class, config forms are sublcass.

Card Challenge: Build your own config form

Card 4 - Migrations

API change: Migrate is part of core, and migrations are configuration entities in YML.

Card Challenge: Import a CSV into Drupal content

Card 5 - Block system

API change: Blocks are now plugins(annotated classes)

Card Challenge: Create your own block type

Card 6 - Services and Dependency Injection

API change: Services and Dependency Injection!

Card Challenge: Just try to follow along

Card 7 - Cron Queuing

API change: Cron queues are now plugins (annotated classes)

Card Challenge: Build your own cron queue

Card 8 - Text filters

API change: Input filters are now plugins (annotated classes)

Card Challenge: Build your own input filter

Card 9 - Attaching assets

API change: JS and CSS are now attached to the page as libraries

Card Challenge: Create a library and attach it to a render element

Card 10 - Local Development

API change: There is not setting.local.php

Card Challenge: Turn on local development settings

Card 11 - Content Entity Types

API change: Entities are now plugins (lots of annotations)

Card Challenge: Generate code with Drupal Console for a custom entity

Card 12 - Theming

API change: There are multiple base themes, all using twig

Card Challenge: Generate a 'stable' subtheme and change some twig

Card 13 - Logging

API change: drupal_watchdog is now a factory service

Card Challenge: log a message when nodes update

Card 14 - Features module

API change: Features is back and even better!

Card Challenge: Use assignment plugins to package your configuration

Card 15 - Field Formatters

API change: Field formatters are now plugins

Card Challenge: Generate/create a field formatter for decimal fields that show five star ratings

Card 16 - Dependency Injection and Service Container

API change: Replace Service Locator code with injected dependencies

Card Challenge: Create a library and attach it to a render element

Card 17 - Composer

API change: Drupal is now built with composer and autoloading classes

Card Challenge: Build a module that depends on a PHP package

Card 18 - Events and Subscribers

API change: Symfony Event Subscribers

Card Challenge: Create, dispatch and respond to your own event

Card 19 - Twig Templating

API change: New templating language - twig

Card Challenge: Access twig variables and debug templates

Card 20 - Cache API and Cache Tags

API change: Bubbleable Metadata

Card Challenge: Create render API markup that is purged from cache automatically

Card 21 - Kernel Events

API change: hook_init replaced with Symfony Kernel events

Card Challenge: Create a service to subscribe and respond to kernel events and modify page response