$mash@bradmash.com: Technology Enthusiast & Full Stack Web Developer

Is PHP Still Relevant in 2021?

PHP 8.X is fantastic with great OOP support, enhanced performance, and more to offer than ever. Check out this video to compare version 7.4 versus HHVM/Hack performance and similarity (version 8.x is even more performant now with JIT compiling).

Need multi-threading? https://www.php.net/manual/en/book.pthreads.php

Need asynchronous event loop? https://reactphp.org/

Need a content management system?

Need eCommerce Software?

One could say that the language was not built with asynchronous programming as a foundational core feature of the language, and that would be accurate. However, solutions exist for this functionality if you need it. Depending on your requirements, PHP may not be the correct fit for your project, where something like Node.js may fit your requirements better. However, if you are a PHP developer or company then using something like ReactPHP is really just a matter or preference as opposed to using something like Node.js

The language dominates the market (it will be around for decades) and also has a competitive market, and, fits many project profiles making it a great candidate for your next project. With a huge community, great support, and tons of libraries and frameworks, there is a lot at developers disposal in 2021 and into the foreseeable future.

And just for a chuckle, I found this quote from Brandon Savage a bit humorous:

Five Drupal 8 and Drupal 9 Compatible Contributed Modules You Should Be Using

In this article we will cover some awesome Drupal 8/9 contributed modules you should consider using for your existing, and upcoming Drupal website builds.

Sessionless Bigpipe

Project page: https://www.drupal.org/project/big_pipe_sessionless

What does it do?

The BigPipe module in Drupal 8 only is able to accelerate responses for personalized requests. (Requests that have a session.)

Drupal 8 will cache unpersonalized responses by default. But the first request for such an unpersonalized response is not yet cached, and is slow to render (single flush, so blank screen for a relatively long time).

This module uses BigPipe to accelerate the first unpersonalized response! And after that first response is sent, the response is stored in Page Cache. Which means that any subsequent requests for that unpersonalized page will be answered very quickly by Page Cache!

Description the drupal.org project page.

Are there any caveats?

Have to keep Page Cache module enabled.

Critical CSS

Project page: https://www.drupal.org/project/critical_css

What does it do?

Embeds a critical CSS file into a page’s HTML head, and loads the rest of non-critical CSS asynchronously.


Are there any caveats?

Can be time consuming to set up and configure for your project. You will need to create a “default-critical.css” file (or implement suggestions hook to name it differently) for your project. This file holds styles that need to load as soon as possible on the page (basically above-the-fold styles).

This can potentially mean a lot of work to adjust how your stylesheet assets are assembled for your project build.

Moderation Sidebar

Project page: https://www.drupal.org/project/moderation_sidebar

What does it do?

Moderation Sidebar provides an off-canvas menu to moderate the current Entity. To use the sidebar, visit any Moderated Entity and click the “Tasks” button in the Toolbar. This will open an off-canvas menu that contains contextual actions related to the Content Moderation module.

Description from drupal.org project page.

Are there any caveats?

Drupal 8.5+ and the Content Moderation module is required to use Moderation Sidebar.

Content Import

Project page: https://www.drupal.org/project/contentimport

What does it do?

This is the simple module which allows an administrator user to import data from a CSV file [for node creation].

Description from drupal.org project page

Are there any caveats?

The project is not covered by Drupal’s security advisory policy.


Project page: https://www.drupal.org/project/imce

What does it do?

IMCE is an image/file uploader and browser that supports personal directories and quota.

description From drupal.org project page

Are there any caveats?

None, would be specific to your use case if issues arise.


Do you have any suggestions for global, general type of modules that most site builds could benefit from? Let me know in the comments! Did you learn anything or find these useful? Tell me about your use case!

This article may grow over time with additional module mentions!