Drupal 8 - Utility classes and functions

DRY (Don't repeat yourself) is a principle of software development, have you hear about that? Sometimes on Drupal while we are developing a custom module, there are some common tasks, features that we probably need to implement, instead of create our custom solutions, what if I told you that Drupal provides, let's say, a toolbox with common functions and useful classes to make our lives easier.

Drupal 8 - Migrate Content from D6

I would like to share my experience on the last time I implemented the Migration API on Drupal 8, a heads-up before jumping to write code: keep calm. This topic might looks overwhelming on first sight, what I hightlight recommend you to take one step back, relax and prepare yourself to read in order to understand how it works.

Migration API is described as a process which extract data from a source, then transform given data to load it into a destination:

Create custom TwigExtension

TwigExtension class allows to do almost everything within Twig templates, but what if we need to go far away, and what we really need isn't available out-of-the-box, then we could create our own TwigExtension, we could achieve it by follow Symfony documentation.

TODO: DRUPAL 8 + VUE.JS - REUSABLE COMPONENTS

Is there a simplest way to put them together without an headache? There are cases where you need to improve your UX, then you might think on include a powerful javascript framework, however it seems that you need to install some extra pieces of software to just get started, even tho if you only want to include one single feature.

Drupal Token Validation

On web security we need to be two steps ahead, then if we expose any resource or path we should not trust that any request is coming from our page. Drupal implements token validation to achieve that, on this page we walk through on a simple example about how do that.

Basically we should use two functions that Drupal provides us,

Subscribe to

Consume API from "Banco Central de Costa Rica" - Exchange Rate

Choose exchange date.
Choose transaction type.
Pick a date.