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.
It is that time of the week when we publish a new Drupalize.Me podcast. You're excited. We're excited. Unfortunately we don’t have one for you today. We recorded a great podcast on getting involved with Drupal 8 with Joe Shindelar, Juampy, Alex Bronstein, and Larry Garfield. It was a fun podcast talking about all the new things that excite us about Drupal 8. Somehow the final recorded audio file turned bad about 10 minutes into it. Normally we have a fall-back plan which involves two people recording the podcast.
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 finish up the Importing Data With Migrate and Drupal 7 series. In four hours of lessons we've covered everything from Migrate module concepts to writing your own custom data migration. To wrap things up this week, we are going to take a look at using other data sources, like CSV files, as well as different destinations aside from nodes.
This week we are starting off two new series at the same time to cover a very important topic for web sites today: Media Management. Almost every site out there needs to work with media in some way, whether it is just uploading images in your blog posts, or having to work with audio and videos in a variety of ways. In Drupal 7 the Media module has become the go-to solution for handling the full range of media needs.
We're happy to give you Episode 29 of the Drupalize.Me podcast, with Christophe Galli and Miro Dietiker, to talk about Translation Management. This is a great project, available as a module on Drupal.org, that works with various multilingual modules to help you keep your site translation organized. There are a lot of moving pieces in a multilingual site, and these guys have been up to their elbows with it for a long time.
You may have heard some news about the fact that a new theme has been added to Drupal, named Classy. But what kind of theme is it exactly? Is it a pretty new look for Drupal 8? Well, no. You will still see Bartik as the default theme on your Drupal 8 site, so why another theme? Classy is a new base theme in core, which Bartik and Seven will then use as their bases. The idea here is to provide more flexibility to themers when it comes to choosing default CSS classes.
In this episode Kyle is joined by a few members of Lullabot's front-end army. Kris Bulman, Thomas Lattimore, Helena Zubkow, Marc Drummond, and Mike Herchel open up and discuss a project they have launched: The Front-End Rapport.
This week we have a ton of new tutorials for you to enjoy. We're very happy to bring back our friends from KnpUniversity to provide a great little series on the Twig templating system, and we're also wrapping up the entire O'Reilly Using Drupal book series with the final tutorials.