NOTE: Support of Dreditor has been nominal for a while. It's still the preferred tool for enhancing Drupal's issue queue, but keeping track of what the "official" version is can be tricky. For now, we recommend https://dreditor.github.io/. There's also been work happening to incorporate many of Dreditor's features right into Drupal.org itself. See https://www.drupal.org/project/drupalorg/issues/1673278
Dreditor is a great community tool that assists with things like patch reviews, and generally interacting with the Drupal.org issue queue. Dreditor is not a Drupal module, but is a plugin script you use in your browser. In this lesson, Joe walks through how to get Dreditor installed (on Chrome and Firefox), and then shows you how to use it to make your work in the issue queues more efficient.
Additional resources
How to Give a Hug
FreeIn this video Joe Shindelar goes over some important information about giving hugs. He walks through the various facets of hugs, giving some demonstrations throughout on:
- Defining a hug
- Types of hugs
- Cautions
- Technique
As Joe admonishes in the video, don't forget to practice your hugging after watching the video. Practice makes perfect!
In this video Jerad Bitner walks you through the process of how to make a patch for a change to a contributed module on Drupal.org. We go through the steps for creating an issue, creating the patch and then submitting the patch. This video assumes that you have a git clone of a contributed module and are familiar with the basics of using git.
For instructions on getting a clone of a Drupal.org module and for applying a patch that you find on Drupal.org, watch the Applying a patch to a module video.
This video goes through the process of finding a patch from the Drupal.org issue queue, and then applying it to a contributed module. After testing the patch and confirming that it fixes the bug, we then walk through the process of reporting back that the patch has been reviewed and tested by the community and is ready to be applied to the module's main branch. This video will show you how to clone a Drupal.org project, but it assumes that you already have git installed and are familiar with the basics of using git.
Here's more information on how to set up your command line to show the git branch release context.
For instructions on creating a patch and submitting it to Drupal.org, watch the Creating a patch for a module video.
In this lesson we take a look at an extremely useful tool for communicating with the Drupal community (and many other Open Source communities as well). We will find out what IRC is, why you would want to use it, how to get connected, and some basic guidelines and tips for talking with people on IRC. We'll also explain what the IRC bot, Druplicon, is and how you can use it.
Additional resources
In this first step of the Learn Drupal Ladder we will install Drupal on our computer. This follows the instructions to Install Drupal locally on learndrupal.org. We start by getting and installing the Dev Desktop, which is an all-in-one web server which comes with Drupal 7. We then install our own Drupal 8 site in Dev Desktop.
If you do not wish to use Dev Desktop as your local web server, we have videos for three other web servers, based on operating system:
- Installing WampServer (for Windows)
- Installing MAMP web server (for Mac)
- Installing a web server on Ubuntu
Additional resources
More information on Development Environments
If you're reading this message, you use Open Source software. The last fifteen years has seen the meteoric rise of tools like Linux, Apache, Firefox, WordPress, Drupal and more; simplyusing Open Source is old hat. When it comes to building your company's web strategy around open source tools, though, the decisions can be fuzzier. The best-known arguments for Open Source are often ideological rather than pragmatic, and fail to account for the different needs of different projects and businesses.
In this Do it with Drupal session, Jeff Eaton will explain the no-nonsense pros and cons of Open Source, covering the big wins as well as the tradeoffs and common pain points. Whether your business is testing the Open Source water, betting the farm on community-maintained software, or open-sourcing its own creations, you'll learn how to avoid common pitfalls and set yourself up for success.
In this lesson we show how everyone can help with the Drupal.org documentation. We take a quick look at some of the links and information that is available to everyone with a Drupal.org account, and then we dive in to make our first edit to an existing page. We run into Drupal.org's spam protection, so we also walk through getting ourselves on the no spam list for the site. After we complete our edit, we then see how to add our own new handbook page, by creating documentation for a contributed module, which doesn't have a page yet. We finish up by creating an issue in the module's issue queue, to get a link to our new page added to the module's project page. You'll see us use the Drupal.org issue queue in this video. For more detailed information about that, see our Getting Started in the Issue Queue video.
In this lesson, we take a tour of the *.drupal.org websites, as there is a lot more than just the main Drupal.org site. After our tour, we'll walk through getting an account, and see how that gives us access to all of the Drupal.org web properties. We'll play with our Dashboard, and join a group on groups.drupal.org, to become more active in the community — the best way to learn and get help. You'll see us use the Drupal.org issue queue in this video. For more detailed information about that, see our Getting Started in the Issue Queue video.
Search on Drupal.org
FreeIn this lesson we take a look at the basics of searching on Drupal.org using the main search form. We talk about the various facets we can use to filter search results, how module and theme search results are a little different, and how to find a user. Drupal.org search can help you narrow in on what you are looking for if you know what the various search are used for. You'll see us take a glimpse at the Drupal.org issue queue in this video. For more detailed information about using the queues, see our Getting Started in the Issue Queue video.
PHP Service Classes
FreeIn this course, we're going to continue on from the Introduction to Object-Oriented PHP series. We're working on the same spaceship project: it has ships, you choose them, then they engage in epic battle!
In an editor, far far away, you'll see a simple application that runs this: index.php is the homepage and battle.php does the magic and shows the results. In the first course, we created a single class called Ship
, which describes all its properties—it's like a container for one ship's details. In this tutorial we're going to replace our flat functions and create a BattleManager
service class to provide the methods we'll need to do that.
What's New in Drupal 8
CourseThis video was part of a series of presentations produced in anticipation of Drupal 8's official release. For information about configuration management based on official releases of Drupal 8, view tutorials in our Configuration Management series.
[# card #]
nid: 2458
title: Config Management series
[# endcard #]
This presentation introduces the Drupal 8 configuration management system (CMI). Learn why configuration management is one of the most eagerly anticipated features of Drupal 8, and how it has the potential to completely change the workflow we use for building sites with Drupal. By addressing a number of long-standing issues in Drupal, CMI helps to separate content from configuration, provides a simple user interface for transporting configuration changes between multiple instances of the same site, and gives developers a consistent way to store and retrieve configuration in their code that is guaranteed to work with the rest of management tools provided.
Here's what we'll cover in this presentation:
- What is configuration management, and what problems does it solve
- The CMI user interface, and changes for site-builders
- The CMI API, and changes for modules developers
- What you can start learning now to ensure you're ready to use CMI
After watching this presentation you should have a better understanding of the importance of the new configuration management system and be excited about the improved workflows and ability to follow current best practices that it introduces to Drupal.
Additional resources
- Configuration Management tutorial series (Drupalize.Me)
- Introduction to YAML video tutorial
- Drupal.org documentation: Configuration API in Drupal 8
- Drupal.org documentation: Managing configuration in Drupal 8
- Principles of Configuration Management - Part One article by Chapter 3
- Principles of Configuration Management - Part Two article by Chapter 3
- The Drupal 8 configuration schema cheat sheet
This tutorial provides an overview of the major shift in Drupal 8 to an object-oriented architecture and was created to help you understand which concepts and terminology you will need to learn in order to interact with modules at a code level.
Other tutorials in this series on "What's New in Drupal 8" will cover major changes in specific areas of Drupal 8 module development, such as entities and fields, configuration management, web services, and hooks. This tutorial will focus on object-oriented PHP architectural changes, concepts, and terminology you will need to know as a module developer.
Specifically, we will present:
- an overview of object-oriented PHP
- why it was introduced into Drupal 8
- how it differs from procedural programming
- major OO-PHP concepts you'll find in core
To learn object-oriented PHP, you should begin with our OOP topic page.
[# card #]
nid: 2926
title: OOP topic
[# endcard #]
Additional resources
- Object-oriented PHP topic page (drupalize.me)
- Why the big architectural changes in Drupal 8 article (buytaert.net)
- PHP Manual: Classes and Objects (php.net)
- Objected-oriented programming conventions (api.drupal.org)
- Services and Dependency Injection Container (api.drupal.org)
This video was part of a series of presentations produced in anticipation of Drupal 8's official release. For information about Drupal 8 module development based on official releases of Drupal 8, view tutorials in our Drupal 8 Module Development series.
[# card #]
nid: 2766
title: Drupal 8 Module Development Guide
[# endcard #]
One of the things that makes Drupal an attractive platform for developers to build their applications with is its extensibility. If you've ever used a contributed module, or written your own, you've taken advantage of this fact. Almost everything about the way that Drupal core works can be altered, extended or even replaced in order to allow developers total control. Historically that's always been done by implementing hooks. In Drupal 8 however, we've got some new tools to allow module developers to extend, alter, and enhance core's functionality.
In this presentation we'll take a high-level look at these new options, including:
- The role of hooks in Drupal 8
- The new plugin system for adding functionality
- Using routes to map HTTP requests to custom code
- Events and event listeners
- The service container and adding new services
- Using the Entity API for data storage
After watching this presentation you should have basic knowledge of the various ways in which Drupal 8 can be extended, and when to use each one. You'll also get information about what you can do now to start preparing for using these new tools.
Additional resources
API Documentation on api.drupal.org:
Articles and Video Tutorials:
- Module Development Essentials (KnpUniversity on Drupalize.Me)
- Dependency Injection and the Art of Services and Containers video tutorials
- Responding to Events in Drupal 8 article
- Unravelling the Drupal 8 Plugin System article
- An Introduction to YAML (Drupalize.Me)
DrupalCon:
- Altering, Extending, and Enhancing Drupal 8 — Joe Shindelar (eojthebrave) (DrupalCon New Orleans, May 2016)
Drupal's Change log:
This video was part of a series of presentations produced in anticipation of Drupal 8's official release. To learn about Drupal 8's new Entity API, take a look at our Entity API series.
[# card #]
nid: 2792
title: Entity API series
[# endcard #]
In this presentation we're going to take a high-level look at the new Drupal 8 Entity Field API. This is an improved version of the Entity API and Field API that was started in Drupal 7. Entities are the new recommended way of dealing with data in Drupal and as such, familiarizing yourself with the workings of the Entity API will be important when it comes time to store or retrieve data from your custom modules. It's a big change from what we're used to in Drupal—directly accessing the database via the database abstraction layer—but the Entity Field API also has some distinct advantages.
This presentation covers:
- Improvements to the Entity API
- Improvements to the Field API
- Handlers, Controllers, and ways to manipulate entities
- Discussion of new types of things we can build with these changes
- What you can do to start learning now
After watching this presentation you should be able to articulate the improvements made to the Entity Field API in Drupal 8 and start to understand how you might make use of it in your own code. We'll also cover some of the things you can start doing now in order to prepare yourself to use the Entity Field API in Drupal 8.
Additional resources
- Community documentation for Entities (drupal.org)
- Entity API (api.drupal.org)
- Drupal 8 Entity API DrupalCon Austin presentation (austin2014.drupal.org)
- Topic: Entities (Drupalize.Me)
This video was part of a series of presentations produced in anticipation of Drupal 8's official release. For information about responsive design tools based on official releases of Drupal 8, view tutorials in our Responsive Web Design topic.
[# card #]
nid: 2968
title: Responsive Web Design topic
[# endcard #]
Drupal 8 is now a friend of mobile—mobile users, mobile developers, and even mobile site administrators. In this presentation, we'll look at the variety of mobile-friendly features added to Drupal 8 in the areas of site administration, site building, and module development.
"Mobile" means different things to different folks. For a content editor, being able to quickly update a piece of content from any device means one less barrier to getting a task done, when and where they want. For a developer, the prospect of diving into web services and building APIs that can be used for mobile apps or in conjunction with the latest Javascript framework is empowering and exciting, especially since the work of structuring entities and fields and administrating content can stay in Drupal. For the site builder, who simply wants to quickly get a site up and running out-of-the-box with a theme that "just works on mobile," the default responsive theme, Bartik, is a time-saver for sure.
By the end of this lesson, you'll have a better idea of the depth and breadth of what "mobile" means for Drupal 8 users of all kinds.
Additional resources
This course introduces important concepts in object-oriented PHP. It is authored and produced by our partners at KnpUniversity (now SymfonyCasts). In this PHP course, you'll be building a PHP app using PHP and refactoring the code, step-by-step, using concepts in OO-PHP such as classes, methods, access control, type hinting, and constructors. You'll learn how to have one object interact with another and by the end of this project, your PHP app will be sporting some shiny new object-oriented PHP.
In this lesson, Leanna introduces you to the project and shows you how to get it up and running. So, look for the Course code download link below and we'll walk you through the process of getting the app up and running on your computer using the built-in PHP server. As long as you have PHP installed on your computer and a code or text editor, you should be able to complete the lessons in this series. (A full stack web server (i.e. Apache/MySQL/PHP) is not required, only PHP.) Follow along by running commands from the start
directory.
Additional resources
This PHP tutorial covers the basics of classes and objects. You'll learn how to set up a class and then what a class is and what objects are like. By the end of this tutorial you should be able to create a class, an object, create a property, and set the value of a property inside a class.
Additional resources
In this PHP tutorial, you'll learn about methods — functions that live inside objects. You'll also learn how to access properties inside methods using the $this
pseudo-variable.