We just added a new tutorial all about starting a new theme with Starterkit. Learn how to use it, how it works, and what prompted its addition to Drupal core.
What If Yoda Taught You Drupal?
Blog postEarlier this quarter, our team got together in Boise, Idaho for our annual retreat. These retreats are always a great opportunity to reconnect, and also to talk about the future of our business. One of the things that's been coming up in a lot of our discussions is how we could leverage Artificial Intelligence (AI) to improve our product, customer service, and learning outcomes for our members. I think it's fair to say that no one on our team is an AI expert at this point, but we are all at least curious.
So, while we were having this discussion I did the only logical thing I could think of: I visited chat.openai.com and asked "How would Yoda go about helping me learn Drupal 10?"
Earlier this month I hosted a Drupal-to-Drupal Migration Workshop, and one of the attendees asked about merging two entity reference fields into a single field during the migration. I wasn't sure how to approach this but we brainstormed some pseudo code, and then came up with two solutions.
On the Drupalize.Me team, we're fans of using DDEV to install Drupal locally. We use DDEV for development work on the site, tutorial demo sites, and workshops. While the Drupal community is spoiled for choice when it comes to options for local development, we've chosen DDEV for a lot of reasons (which we'll get into in this tutorial), but mostly because we use it every day and it works great.
Drupalize.Me trainer Joe Shindelar has recorded a new video walk-through of how he goes about finding out what type of plugin you want to add, and how to find out what code is expected, and where to put that code in your module. The video is now embedded in the written version of the tutorial, Implement a Plugin of Any Type, available to our members.
Years ago I was involved with authoring the Drupal User Guide, and I’m still the maintainer today. Now, we want to pick up where the Drupal User Guide left off, and create a Drupal Module Developer Guide. This hands-on module developer guide will build on the site and the guiding scenario used for the User Guide. We’ll walk through the process of authoring a couple of custom modules to meet your client’s needs and in the process, learn the basics of Drupal module development through writing “real-world” code.
We've added 3 videos to tutorials in our recently published Routes and Controllers in Drupal course. Lead trainer, Joe Shindelar, walks through essential concepts and skills for Drupal module developers like creating a route with a controller, understanding how parameters and upcasting work in Drupal, and how to use route parameters in a practical example with a route definition and a custom page controller class.
James Shields (lostcarpark on Drupal.org) has once again rounded up fellow Drupal community members to write articles for a 2023 Drupal Advent Calendar, hosted on his personal site, lostcarpark.com. This year, Drupalize.Me trainers Amber Matz and Joe Shindelar contributed articles to the Advent Calendar. Amber's article on adding Help Topics to a module was published on December 17, and Joe's in-depth overview of Drupal's upcoming switch from annotations to native PHP attributes was published on December 21. Check out the Drupal Advent Calendar project (link inside) for more interesting and informative articles.
We've got a lovely mix of announcements for you today: Drupal's latest minor release, 10.2.x is now available; a new major release schedule for Drupal was recently announced; ICYMI: videos added to 4 tutorials in our new Routes and Controllers in Drupal course; and our office is officially closed the week of December 25 through January 1.
For over a decade, Drupal has been using Symfony Components. In 2015, with the release of Drupal 8, these components became a part of Drupal's core software. It's possible to build complex Drupal sites without worrying about what these components do. But learning about the system we're using will make us better developers of Drupal sites and other PHP applications.
In this first part of a 3-part series, we'll explore how Symfony helps Drupal with its HttpKernel component. We'll look at the component itself and how Drupal uses it to coordinate the request/response cycle.
In Part 2 of our exploration of Symfony components in Drupal, we focus on the event dispatcher.
The event dispatcher is a tool that enables the application to communicate across objects by subscribing to and listening for events. It achieves this by creating a directory for various event types, and the corresponding registered listeners for each event type. When a specific type of event occurs, the code that has registered a listener for that event is invoked. If you're familiar with the Mediator and Observer design patterns you might recognize similarities here.
Registration is now open for our next 2 workshops on Drupal migrations and theming! Learn to use Drupal's Migrate API to upgrade from Drupal 7 to Drupal 10, February 26-28, 2024. Learn to create stunning Drupal 9 and 10 themes, March 13-15, 2024.
These remote workshops will happen 100% online via Zoom and other tools. We think you’ll get the most out of it if you come prepared to engage with the instructors and other participants.
They are broken up into 3 distinct 2.5-3 hour units instead of one long 8-hour workshop.
Each workshop unit will consist of a combination of instructor presentation, hands-on exercises, and instructor-lead group discussion. The units build upon one another so you’ll want to be able to attend all 3 days of the workshop you select.
In this installment of our series on Symfony's role in Drupal, we're focusing on the Routing component. Even if it may seem simple looking from the outside, routing in Drupal is a complex task with lots of customized parts. The routing component's job is to match incoming requests to the correct controller, which is then responsible for building the response. Let's take a high-level glance at how Drupal has built upon Symfony's Routing component.
We've made it to the final blog post (for now?) in our spotlight on Symfony in Drupal. In this blog post, we'll take a look at Symfony's utility components. We're using this term to group together Symfony components that provide useful functionality. It's a great idea to familiarize yourself with these. You can make use of them in your own modules, or bring them into other PHP application code.
PHP Attributes for Drupal Plugins
Blog postAs of PHP 8.1, the PHP language has native support for attributes that are compatible with Drupal’s plugin system use case. As a result, Drupal will transition from the use of annotations to PHP attributes, to supply metadata and configuration for plugins. This will require developers to learn the new PHP attributes syntax, and update their existing code to use it. For now, Drupal will continue to support both annotations and attributes. But the proverbial clock is ticking.
So let’s take a look at how we got here, and what you’ll need to do to update your code for future versions of Drupal.
In Drupal 10.2, you’ll notice a new UI when you create a new field. It’s designed to help you recall what each field type means, so that you can make the right choice. Let’s check it out.
Today we're adding six more tutorials to our Drupal 8 Migration Guide. With a focus on understanding source, process, and destination plugins. Critical information for anyone planning to write a custom migration or wanting to use the Migrate API with a non-Drupal source.
We're Moving to Pantheon
Blog postWe’re happy to announce that we are moving the Drupalize.Me site to Pantheon hosting. We’ve partnered with Pantheon in the past to bring you a full series on using this great service. We’re glad to deepen our partnership and take advantage of Pantheon’s great tools to support ourselves. Moving a site to new infrastructure is always a big task, so we’re going to share our process with you as we make the move.
Learn by Mentoring at DrupalCon
Blog postDrupalCon is a great opportunity to learn all kinds of new skills and grow professionally. For the 3 days of the main conference in Dublin (September 27–29) there will be sessions on just about everything related to Drupal that you could want. One amazing opportunity that you may not be aware of though is the Mentored Sprint on Friday, September 30th. This is a great place for new folks to learn the ropes of our community and how to contribute back. What may be less talked about is the chance to be a mentor.
This week we're adding five new tutorials to our Drupal 8 Migration Guide that walk through the process of creating a custom Drupal-to-Drupal migration, allowing you to fine-tune every aspect of the migration from a previous version of Drupal into Drupal 8.