<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>blog on The Russian Lullaby</title><link>https://www.therussianlullaby.dev/blog/</link><description>Recent content in blog on The Russian Lullaby</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 29 Oct 2019 13:49:23 +0600</lastBuildDate><atom:link href="https://www.therussianlullaby.dev/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>How to set up a local development environment (LDE) for Drupal</title><link>https://www.therussianlullaby.dev/blog/how-to-set-up-a-local-development-environment-for-drupal/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/how-to-set-up-a-local-development-environment-for-drupal/</guid><description>&lt;p>You are probably interested in setting up a workign environment for Drupal-based projects or maybe you have new members in your development team, so the configuration of the correct development environment is a fundamental part of the process of working with Drupal, you are right. By reading this how-to guide, you will implement a complete and ready-to-go Drupal working environment ready for versions 8, 9, and 10 of our favorite CMS/framework. Do you want to start?&amp;hellip;&lt;/p>
&lt;hr>
&lt;p>&lt;strong>Picture from Unsplash, user &lt;a href="https://unsplash.com/@mathyaskurmann">Mathyas Kurmann, @mathyaskurmann&lt;/a>.&lt;/strong>&lt;/p>
&lt;hr>
&lt;p>This content has been constructed as a …&lt;/p></description></item><item><title>Five basic things I've learned using GraphQL in Drupal</title><link>https://www.therussianlullaby.dev/blog/five-basic-things-ive-learned-using-graphql-in-drupal/</link><pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/five-basic-things-ive-learned-using-graphql-in-drupal/</guid><description>&lt;p>You&amp;rsquo;ve probably heard of &amp;ldquo;decoupled Drupal&amp;rdquo; or &amp;ldquo;headless&amp;rdquo;, a way of working with Drupal that consists of separating the frontend from the backend, implementing communication between both parts as separate projects, distinct repositories, etc. Usually, this way of working necessarily involves &amp;ldquo;breaking the monolith&amp;rdquo; i.e. splitting into several parts of different technology, leaving Drupal only for the backend side of the project. In this context, you will use some kind of specification or API connection to make backend and frontend work well and …&lt;/p></description></item><item><title>Books/ 31 Days of Drupal Migrations</title><link>https://www.therussianlullaby.dev/blog/books-31-days-of-drupal-migrations/</link><pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/books-31-days-of-drupal-migrations/</guid><description>&lt;p>Of all the APIs available in Drupal, the Migrate API may be one of the most hidden from the average Drupal user. It is even possible that, while reading this post, you discover for the first time that there is a whole set of Drupal modules, both core and contributed, fully dedicated to designing and running migration processes inside Drupal. You can move data from an old Drupal site to the most recent version, but also from other databases, files, systems, frameworks, CMSs, DXPs&amp;hellip; and all of these options come together around the Drupal Migrate API. It is a set of resources that demands …&lt;/p></description></item><item><title>Condition Plugins for Visibility in Drupal 8-9</title><link>https://www.therussianlullaby.dev/blog/condition-plugins-for-visibility-in-drupal/</link><pubDate>Thu, 29 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/condition-plugins-for-visibility-in-drupal/</guid><description>&lt;p>Hello there! In this new post I want to focus on a very interesting topic of Drupal, which pertains to its extension capabilities through its Plugins system. It is not a very extensive topic, but it is also true that there is not much documentation about it. This is a very common case when you&amp;rsquo;re building some kinds of Drupal Blocks to render specific data and you need that its visualization and its behaviour responds to special conditions.&lt;/p>
&lt;hr>
&lt;p>&lt;strong>Picture from Unsplash, user &lt;a href="https://unsplash.com/@bchild311">Benjamin Child, @bchild311&lt;/a>&lt;/strong>&lt;/p>
&lt;hr>
&lt;p>&lt;strong>Table of Contents&lt;/strong>&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;p>&lt;a href="#1--introduction">1- Introduction&lt;/a>
&lt;a href="#2--what-are-condition-plugins">2- What are Condition Plugins&lt;/a>
&lt;a href="#3--existing-condition-plugins-in-your-drupal-installation">3- Existing Condition …&lt;/a>&lt;/p>&lt;/!--></description></item><item><title>Guide: How to integrate JavaScript in Drupal 8-9</title><link>https://www.therussianlullaby.dev/blog/guide-how-to-integrate-javascript-in-drupal-8-9/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/guide-how-to-integrate-javascript-in-drupal-8-9/</guid><description>&lt;p>Imagine that you have to integrate JavaScript code into your Drupal project&amp;hellip; Where do you start? How do you do it? You&amp;rsquo;re looking for information but you don&amp;rsquo;t find anything &amp;ldquo;holistic&amp;rdquo;, something that goes from 0 to 100 and that puts in context how the relationships between Drupal and JavaScript are structured. Well, this article was made for you (Or for other people in your team that you want to introduce to this topic).&lt;/p>
&lt;p>In this guide you will learn basic concepts of JavaScript, the terminology used in Drupal, functions, methods and common mechanics to enrich …&lt;/p></description></item><item><title>Books/ Drupal 9 Module Development</title><link>https://www.therussianlullaby.dev/blog/books-drupal-module-development/</link><pubDate>Sat, 12 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/books-drupal-module-development/</guid><description>&lt;p>For a long time I wondered whether I should write a review of Drupal 8 Module Development, the previous edition of the current book. For me there were two important factors: on the one hand, it was a very ambitious book in scope and content, so writing a concise review was a real challenge. On the other hand, Drupal 9 was already on its way, and the book could quickly become outdated. Luckily, Drupal 9 has already arrived, and the transition from 8 to 9 has not been traumatic at all (there are still many people trapped in the crack between Drupal 7 and Drupal 8), but rather a fairly smooth …&lt;/p></description></item><item><title>Drupal Migrations (V): Debugging Migrations-II</title><link>https://www.therussianlullaby.dev/blog/drupal-migrations-five-debugging-migrations-ii/</link><pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-migrations-five-debugging-migrations-ii/</guid><description>&lt;p>Following the previous post, in this article I wanted to share again some guidelines for debugging Drupal Migrations. While in the last article I wrote down some questions about modules, plugins and configuration object management, in this case I felt like stopping at something more &amp;ldquo;code-oriented&amp;rdquo;, more specific. I have chosen for this article some guidelines to configure Xdebug in an IDE (in this case I have used PhpStorm) for migrations running in a locally deployed Drupal using DDEV. With the aim of debugging a Migration process -although actually the process is similar for any …&lt;/p></description></item><item><title>Drupal Migrations (IV): Debugging Migrations-I</title><link>https://www.therussianlullaby.dev/blog/drupal-migrations-four-debugging-migrations-i/</link><pubDate>Mon, 29 Jun 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-migrations-four-debugging-migrations-i/</guid><description>&lt;p>The Drupal migrations, despite their linearity in terms of definitions, contain a lot of inherited complexity. The reason is very intuitive: although the Migrate API is a supersystem that offers a very simple &amp;ldquo;interface&amp;rdquo; of interactions for the user-developer who wants to build migration processes, in reality several subsystems work by interacting with each other throughout a migration process: Entities, Database, Plugins&amp;hellip;There are a lot of classes involved in even the simplest migration process. If we add the irrefutable fact that a migration will tend to generate errors in …&lt;/p></description></item><item><title>Drupal Migrations (III): Migrating from Google Spreadsheet</title><link>https://www.therussianlullaby.dev/blog/drupal-migrations-three-migrating-from-google-spreadsheet/</link><pubDate>Wed, 27 May 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-migrations-three-migrating-from-google-spreadsheet/</guid><description>&lt;p>The systems and subsystems related to Drupal&amp;rsquo;s migration API are certainly exciting. In the previous articles in this series, I wanted to draw as complete a map as possible (part one) of the vast amount of resources, possibilities and referenced experts. In the second part I wanted to expose some basic mechanics of the migration processes in Drupal and knowing that this opens the door to thousands of options, possibilities and techniques&amp;hellip;.I didn&amp;rsquo;t want to let a third article go by without sharing some experiences migrating data from a common format as a Google Spreadsheet, …&lt;/p></description></item><item><title>Functional testing for Browser in Drupal 8-9 using PHPUnit</title><link>https://www.therussianlullaby.dev/blog/functional-testing-for-browser-in-drupal-using-phpunit/</link><pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/functional-testing-for-browser-in-drupal-using-phpunit/</guid><description>&lt;p>Everything around Test-driven development (TDD) is a very interesting and very motivating world and besides, these are topics with a certain antiquity. So it is very easy to find related contents. But the relationship between this area and Drupal is even more interesting: there are multiple options to implement testing of different types and different orientation (Unit Test, Kernel, JavaScript, functional &amp;hellip;) so it can be complex to introduce in this world. Today I want to take advantage of the experience of porting to Drupal 8 a small contributed module to share examples about …&lt;/p></description></item><item><title>Building Symfony events for Drupal</title><link>https://www.therussianlullaby.dev/blog/building-symfony-events-for-drupal/</link><pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/building-symfony-events-for-drupal/</guid><description>&lt;p>Recently I was preparing some events to intercept requests in Symfony and sharing some approaches with my colleagues. Then I discovered that in my environment the topic of Event Management in Drupal (dispatching events, subscribing events) was not very known, so I prepared some snippets to share and from there I thought to write some introductory article.
Undoubtedly, in the latest versions of Drupal, certain components of Symfony have not only made their appearance, but also have been gaining importance and surely this will extend further in time, given its elasticity and fully integrated OOP …&lt;/p></description></item><item><title>Drupal Migrations (II): Examples</title><link>https://www.therussianlullaby.dev/blog/drupal-migrations-two-examples/</link><pubDate>Tue, 17 Mar 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-migrations-two-examples/</guid><description>&lt;p>As I said in the previous post, during these months I will be playing with migrations and preparing a few cases for a future book, I hope. During these days of confinement, I want to keep publishing small articles here to share migration-related experiences.&lt;/p>
&lt;p>In the previous post, I wrote about Drupal migrations from a toolbox point of view: a set of basic resources to help frame a migration.&lt;/p>
&lt;p>There is a lot of information to process, and of course there are more concepts, techniques, and tactics involved in solving a migration. So this month I want to write something that lets me play with …&lt;/p></description></item><item><title>Drupal Migrations (I): Basic Resources</title><link>https://www.therussianlullaby.dev/blog/drupal-migrations-one-basic-resources/</link><pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-migrations-one-basic-resources/</guid><description>&lt;p>I am working on notes for a draft that should become a book about migration
processes built with Drupal and its Migrate API. It is expected to be released
in June 2020, and collecting, testing, and shaping the content has become quite
a large piece of work.&lt;/p>
&lt;p>There are still a few months left before launch, so, to preserve a little
mental health and give these tasks some partial meaning, I thought I could
publish a few small posts here, based on those working notes.&lt;/p>
&lt;p>That way I can share something useful alongside the complementary notes and, if
COVID-19 gets me before the book comes out, at …&lt;/p></description></item><item><title>Books/ Local Web development with DDEV</title><link>https://www.therussianlullaby.dev/blog/books-local-web-development-with-ddev-explained/</link><pubDate>Mon, 30 Dec 2019 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/books-local-web-development-with-ddev-explained/</guid><description>&lt;p>Lately, I&amp;rsquo;m interested in improving the tools of the project&amp;rsquo;s stack, thanks to the advice of a friend I approached DDEV. I already knew Docker and everything related to its ecosystem (Docker, Docker-Compose, Docker Engine, Docker Swarm&amp;hellip;) although it is true that not in a very advanced way in general, only at the level of the daily needs or small test games&amp;hellip;so I recently acquired the book &amp;ldquo;Local web development with DDEV explained&amp;rdquo; written by Mike Anello and I&amp;rsquo;d like to share my thoughts on that here.
So, Do you develop projects based on Drupal? do …&lt;/p></description></item><item><title>Drupal Backend Workshop in Drupal Day Spain 2019</title><link>https://www.therussianlullaby.dev/blog/drupal-backend-workshop-in-drupal-day-spain-2019/</link><pubDate>Tue, 26 Nov 2019 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/drupal-backend-workshop-in-drupal-day-spain-2019/</guid><description>&lt;p>I write these lines (or I start them) just as I return from Drupal Day Spain 2019, which this year took place in the city of Zaragoza. I&amp;rsquo;m typing while I recreate in my head various anecdotes, details, conversations and above all, learning.&lt;/p>
&lt;p>It has been a very enriching meeting and I liked it very much from a technical point of view, but now I want to write mainly about what has been my personal contribution to the encounter: an introduction workshop to the backend of Drupal 8. This year, the event has been organized in the city of Zaragoza, capital of the &amp;ldquo;autonomous …&lt;/p></description></item><item><title>Docker, Docker-Compose and DDEV - Cheatsheet</title><link>https://www.therussianlullaby.dev/blog/docker-docker-compose-and-ddev-cheatsheet/</link><pubDate>Sun, 09 Jun 2019 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/docker-docker-compose-and-ddev-cheatsheet/</guid><description>&lt;p>As I mentioned in a previous month&amp;rsquo;s article, I&amp;rsquo;m still using / playing / practicing with DDEV to build development environments in an agile way. And the truth is that the experience couldn&amp;rsquo;t be more nicer.
We know that for some years, working with Docker Engine has become a MUST. From our ability to define specifications(Dockerfiles), configure autobuilds in the cloud to generate images from our repositories(Dockerhub), run images and containers(Docker), connect containers and relate them(Docker-Composer) or deploy container networks( Docker Swarm) &amp;hellip; on this depends …&lt;/p></description></item><item><title>Creating development environments for Drupal with DDEV</title><link>https://www.therussianlullaby.dev/blog/creating-development-environments-for-drupal-with-ddev/</link><pubDate>Sat, 18 May 2019 00:00:00 +0000</pubDate><guid>https://www.therussianlullaby.dev/blog/creating-development-environments-for-drupal-with-ddev/</guid><description>&lt;p>Well, at this moment we cannot deny that containerization is a basic pillar of our project work: the ability to compartmentalize the technological stack of each project is a fundamental resource (and be wary of those who do not practice it). But the point is that I have a new toy to play with it. Let me explain: I always (or almost always) had worked on Drupal projects with the same stack of versions, so I only had one environment set up. Then, I started to have different versions (Drupal 6.x, Drupal 7 &amp;hellip; 8) at the same time for diverse projects and then I started playing with Docker. …&lt;/p></description></item></channel></rss>