Entities are the fundamental building blocks that make up any Drupal site. Having a good understanding of the Entity system is an important part of ensuring the data model of your Drupal site is set up properly.
Modules are bundles of primarily PHP code that extend Drupal in order to add new features or alter existing functionality.
Responsive Web Design
TopicResponsive web design is a set of design approaches and development best practices that ensures that a web design can be used on many types and sizes of devices.
PHP
TopicPHP: Hypertext Preprocessor (PHP) is a popular interpreted programming language that is especially suited for web development. Drupal core and all contributed modules are written in PHP.
Upgrading is the process of moving your site from a previous major version of Drupal to a newer version, for example from Drupal 7 to Drupal 11.
Coding Standards in Drupal
CourseContributing to Drupal
TopicAs an open source project, Drupal depends on community contributions in many forms including documentation, code, translation, speaking, organizing events, mentoring others, and even donating money.
The Drupal Community
TopicDrupal has an amazing community of people who create the software and help each other make the best use of it. This is one of the main benefits of using Drupal — and everyone should take advantage of that.
Hooks
TopicHooks allow modules to alter and extend the behavior of Drupal core, or another module. As a Drupal developer, understanding how to implement and invoke hooks is essential.
Menus
TopicA site’s main navigation elements, whether they be in the header, footer, or sidebar, are composed of links built using Drupal's menu system. Drupal allows site administrators to build menus while also allowing module developers to add and alter menus in code.
Blocks
TopicA block is a reusable widget that is placed inside regions (layout containers) of your theme. Blocks can be used by site administrators on the Block layout admin page or provided by a module using the Plugin API.
Layouts
TopicA layout can describe how various components are arranged on various levels—from an entire page from the header to the footer, to just the “middle” where the dynamic content goes, to individual components. It can apply to templates for managed content or one-off designs for landing pages.
Development environments provide a sandbox where you can work on your application without affecting the live site.
Back up Your Drupal Site
TopicA reliable backup will allow you to restore your site if something goes wrong.
Composer for Drupal Users
CoursePhpStorm
TopicThe PhpStorm integrated development environment (IDE) contains dozens of useful features that make working with a Drupal codebase easier.
JavaScript in Drupal
TopicJavaScript files are included by a module or a theme by creating an asset library. Using this asset library system you can selectively choose which files to load, overwrite existing files, or customize them to suit your needs.
Drush
TopicDrush is a command line interface that enables you to interact with your Drupal site without clicking around the graphical user interface (GUI).
Forms (Form API)
TopicDrupal provides a standard, secured method for module developers to add forms to a Drupal website. Learn how to use the Form API to build, validate, and submit a custom form.
Every Drupal module needs a *.info.yml file; the basic structure of a form controller class and related routing is the same for every form; and much of the code required to create a custom content entity type is boilerplate annotations and extending base classes. Wouldn't it be nice if there was a way to automate some of that repetitive work? Drush can be used to speed up module development by generating scaffolding code for event subscribers, forms, services, module files, routing, and much more. These generators are provided by the Drupal Code Generator project. They're neatly bundled up in Drush under the drush generate
command.
Before Drush 9, there were no code generators in Drush, but the Drupal Console project provided them. That project and its code generators, have languished since the release of Drupal 9. While it can still be used, and is often referenced in tutorials about Drupal, we much prefer the code generated by Drush at this point.
In this tutorial we'll:
- Learn about the Drupal Code Generator project
- Learn how Drush integrates with this project
- Demonstrate the
drush generate
command and its options
By the end of this tutorial, you'll know how to use the drush generate
command to speed up development for your Drupal modules.