Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

SitePoint PHP Blog:
Tutorial on Using Drupal 8 Plugin Derivatives Effectively
Jan 20, 2016 @ 12:24:38

The SitePoint PHP blog has a tutorial posted for the Drupal users out there showing you how to use plugin derivatives effectively.

In this article we will explore the long answer to that and learn what derivates are and how we can use them. For the latter, we will build an example inside the demo module that can be found in this git repository and which should hopefully help us better understand what’s going on. For a slightly more complex example, the Menu system is great as it provides an individual block for each of its menus (similar to Drupal 7 but using plugins).

They're basically creating a system that allows the dynamic creation of Node Blocks for each of the article nodes but it's just an example of how (and not a recommendation on what you should do). They start in by talking about plugin derivatives - what they are and how they fit into the overall Drupal 8 code structure. The tutorial then shows the creation of the derivative class and explain each part of the code that makes it up. Following this is the other half of the functionality, is the block plugin class that will generate the instances of itself as requested.

tagged: drupal8 plugin derivatives example tutorial node block article

Link: http://www.sitepoint.com/tutorial-on-using-drupal-8-plugin-derivatives-effectively/

SitePoint PHP Blog:
Drupal 8 Queue API – Powerful Manual and Cron Queueing
Dec 14, 2015 @ 11:54:38

On the SitePoint PHP blog Daniel Sipos has written up a tutorial spotlighting a powerful feature of Drupal 8, the latest major release of this popular project: the Queue API. Queueing in Drupal allows you to offload tasks to be handled outside of the current web request.

The Queue API in Drupal allows us to handle a number of tasks at a later stage. What this means is that we can place items into a queue which will run some time in the future and process each individual item at that point and at least once. Usually, this happens on CRON runs, and Drupal 8 allows for a quick set up for cronjob based queues. It doesn’t necessarily have to be CRON, however.

They use two examples to help illustrate how to use the queueing system: one that uses the cron-based approach and another that's more manually triggered. They start out with the theory behind it all, talking about the different pieces (objects/classes) and how they fit together to make the queueing system. With that out of the way the article starts in on the code and the "Node Publish" queue, defining its basic structure and hooking it in to the framework. It shows you how to create the cron worker to process the queue and how to build the manual worker to do the same but only when specifically called.

tagged: drupal8 queue manual cron process defer processing tutorial

Link: http://www.sitepoint.com/drupal-8-queue-api-powerful-manual-and-cron-queueing/

Larry Garfield:
Drupal 8: Happy, but not satisfied
Dec 03, 2015 @ 10:53:57

In this new post to his site Drupal developer Larry Garfield talks about why he's "happy, but not satisfied" about the release of Drupal 8 and the current state of the code in this major milestone.

Two weeks ago (hey, I've been busy and trying to sleep for once), after 1716 days of work by more than 3312 people the Drupal community finally released Drupal 8, the latest release of the best community-driven web software in the world. The blogosphere is already filled with congratulatory blog posts celebrating the immense accomplishment, and deservedly so.

A number of people recently have asked me how I feel about Drupal 8's release, especially around the PHP community. Overall, my answer has to be that I'm happy, but not satisfied.

Among the things on his "happy" list are the fact that you can "teach an old codebase new tricks", that there's a real framework underneath it and that more modern development styles are being followed. On the flip side, there are some things he's not entirely satisfied with including the current state of OOP in the project, the testability of the codebase, how Composer was adopted and the lack of layout support in core. He gets into reasoning for his points on both sides but ends the post on a happier note, pointing out the people he's thankful for and the work that's been done by each to make the project what it is today.

tagged: drupal8 opinion happy satisfied release

Link: http://www.garfieldtech.com/blog/drupal8-happy-not-satisfied

Thijs Feryn:
The Drupal 8 origin story with Larry Garfield
Nov 23, 2015 @ 12:28:57

Thijs Feryn has posted the latest episode in his series of video interviews with members of the PHP community he's caught up with at conferences. In his latest show he talks with Larry Garfield, one of the more well-known members in the Drupal community about the latest milestone in Drupal, the release of Drupal 8.

Today, November 19th 2015, marks the release date of Drupal 8. To celebrate this release, I decided to publish my interview with Larry Garfield today.

Larry is a key member of the Drupal community and a core contributor to the project. Throughout the conversation, Larry tells us the origin story of Drupal 8 and how the technical challenges lead to the adoption of technology from the broader PHP community such as Composer, Twig and a set of Symfony Components.

I hope you like the interview, it gives a nice behind the scenes look at the history of Drupal 8 and how Drupal reached out to the PHP community to create a more modern code base.

You can watch the video either through the in-page video player or directly on YouTube. You can also check out his previous interviews in this archive section on his site.

tagged: thijsferyn interview larrygarfield drupal drupal8 community

Link: http://blog.feryn.eu/2015/11/19/the-drupal-8-origin-story-with-larry-garfield/

Acquia.com:
Drupal 8.0.0 released
Nov 20, 2015 @ 09:16:35

If you're already a Drupal user you know the latest and greatest news. If not, here's the scoop - the latest major version of Drupal has been released with major reworks and updates across the board: Drupal 8.0.0.

Happy Drupal 8 Day! It has been a long time coming, and we couldn't be more excited to step into this next phase of Drupal development. There's no doubt it will usher in a new era of digital experiences, and we can't wait to see how it all unfolds.

Dries discussed what the release of Drupal 8.0.0 means for the community, and you can read his full post here. We also caught him traipsing through the streets of Belgium wearing a sombrero... for your viewing pleasure!

The post includes a video of the interview with Dries. The linked post also describes the updates and "transformation' Drupal has gone through in this latest release.

tagged: drupal8 release announcement interview driesbuytaert video

Link: http://www.acquia.com/blog/drupal-8/drupal-800-released/19/11/2015/3290246

SitePoint PHP Blog:
Custom Display Suite Fields in Drupal 8
Oct 15, 2015 @ 12:50:20

The SitePoint PHP blog has posted a new tutorial that's another Drupal-focused article explaining custom Display Suite fields in the latest Drupal 8. Display Suite is a popular Drupal module that's been ported from Drupal 7 to version 8. It provides lots of features to help you easily create these custom fields and integrate them into layouts with other core fields.

Without question, Display Suite is one of the most popular modules in Drupal’s contributed modules history. It allows the creation of layouts, fields and exposes all sorts of other powerful tools we use to build the presentation layer of our Drupal sites.

[...] In this article, we are going to look at how we can create our own Display Suite field in Drupal 8 using the new OOP architecture and plugin system. To demonstrate this, we are going to create a DS field available only on the Article nodes that can be used to display a list of taxonomy terms from a certain vocabulary. And we’re going to make it so that the latter can be configured from the UI, namely admins will be able to specify which vocabulary’s terms should be listed.

He starts with a brief introduction to Drupal 8 plugins and their structure. From there he gets into the creation of the VocabularyTerms class they'll use to define their custom DSField plugin. He goes on to create the default configuration, formatters and how to show a list of the current settings (a summary). He then creates the form where the plugin can be configured through the UI and how to render the resulting field.

tagged: drupal8 tutorial custom field displaysuite

Link: http://www.sitepoint.com/custom-display-suite-fields-in-drupal-8/

Thijs Feryn:
Interviewing Kristof De Jaeger and discussing Drupal 8 & Drupalcon
Sep 28, 2015 @ 11:16:20

Thijs Feryn has a post to his site sharing a video interview with Kristof De Jaeger talking about Drupalcon and Drupal 8 in general. Kristof is a well-known member of the Drupal community and has spoken at several events, including this year's Drupalcon Barcelona 2015.

Last week I had the privilege to chat with Kristof De Jaeger (AKA @swentel on Twitter) at Drupalcon in Barcelona. I did an interview with him and we talked about a bunch of things, all of which are somewhat Drupal related.

They talk about Drupal 8, Drupalcon and the community, "Headless Drupal" and Kristof’s role in the community. You can walk the video of the interview through the in-page video player or you can just get the audio over on Soundcloud.

tagged: interview video thijsferyn kristofdejaeger drupal8 drupalcon community

Link: http://blog.feryn.eu/2015/09/28/interviewing-kristof-de-jaeger-and-discussing-drupal-8-and-drupalcon/

SitePoint PHP Blog:
Drupal 8 Third Party Settings and Pseudo-Fields
Sep 15, 2015 @ 12:25:45

The SitePoint PHP blog continues their series looking at Drupal 8 with this new article from Daniel Sipos about third-party settings and pseudo-fields. Part one of the series can be found here

In the first installment of this series we started our journey towards creating some simple but powerful functionality. The goal we set was to have the possibility to load a form on each node page and to be able to choose which form type should be used on the different node bundles. [...] It follows to see how we can configure the core node types to use one of the plugins defined on the site and how to render the relevant form when viewing the node. But first, in order to have something to work with, let’s create our first ReusableForm plugin that uses a very simple form.

He starts back in with the creation of a first simple plugin to handle the form created in the previous part of the series, assigning the form to it via annotations. He then configures the node entities to be able to use the plugin via the services YAML configuration file. He then updates the .module with a function for altering node details and an entity builder. He updates the schema definition to be able to show the form and, finally, render the form out to the view with the assigned node entity types.

tagged: drupal8 series part2 thirdparty settings pseudofields form tutorial

Link: http://www.sitepoint.com/drupal-8-third-party-settings-and-pseudo-fields/

SitePoint PHP Blog:
Drupal 8 Custom Plugin Types
Sep 14, 2015 @ 11:08:06

The SitePoint PHP blog has posted an overview from Daniel Sipos covering custom plugin types in Drupal 8 and how you can combine them (custom forms) with node entities.

In this article series of two parts, we will use this system to build a feature that allows the use of custom forms together with node entities. After we’re done, we’ll be able to do the following: configure node bundles to use one of multiple form types to be displayed together with the node display and easily define new form types by extending from a sensible base class. [...] We will get started by creating our custom plugin type. T

He starts with the plugin manager, showing you how to create a custom ReusableFormsManager in the module to set up the manager and add it to the system. He then sets up the plugin interface the manager is expecting to find. This piece defines methods to get the name of the plugin and to build the form. He then creates a simple ReusableForm annotation class and builds out the plugin base. This base class includes a form builder object used to build and output the custom form. Finally he gets into building the form and its matching interface. It's a simple "Contact Us" kind of form that outputs three fields (first name, last name, email) and a "Submit" button.

tagged: drupal8 custom plugin type tutorial form contactus

Link: http://www.sitepoint.com/drupal-8-custom-plugin-types/

SitePoint PHP Blog:
From Request to Response: A Journey into Drupal 8 Internals
Aug 18, 2015 @ 10:22:33

In a post on the SitePoint PHP blog author Daniel Sipos takes you on a trip through the Drupal 8 execution structure, from request to response, in the internals of the tool.

In the first article on Drupal 8 module development we looked a bit at the routing aspect of this process. We’ve seen that creating pages with paths is now a matter of declaring routes that match up with controllers. The latter, as we’ve seen, can return a render array that gets interpreted into markup and displayed in the main content area of that page. However, did you know that under the hood, Drupal actually transforms that array into a Response object according to the dictates of Symfony’s HTTPKernelInterface?

In this article, I would like us to go deeper into the internals of Drupal 8 (and Symfony2) and look at what actually happens (and can happen) from the moment a request is made by a user to the one in which they see something returned in response.

He starts at the initial point of the request, the front controller, and talks about the creation of the Request instance and it's handling by the HTTPKernel. He moves into the kernel and talks about the events that are triggered during execution and provides an illustration of the flow of the request all the way through to the response. He then "goes deeper" into looking at render arrays and the HTMLRenderer handling to manage the output of the page on the Drupal side.

tagged: request response drupal8 internals symfony httpkernel overview

Link: http://www.sitepoint.com/from-request-to-response-a-journey-into-drupal-8-internals/