🧌 FrankenPHP, 40 M2 Upgrades in a Week, Adobe Commerce Release & more


I hope you've had a great winter so far!
I typically get back to writing Segment in January, but it was a very crazy month 😅 I published 30+ lessons for the Magento Message Queues course, organized a 2-hr workshop and presented it at Meet Magento Florida, and then cranked out an impromptu presentation at MMFL with 60+ slides. Needless to say, I took the next couple weeks off.
But I learned Parkinson's Law is a very real thing 😁
I'm finally recharged now and back at it this week! Here's this month's Segment.

🧌 FrankenPHP

At Meet Magento Florida, I got the chance to share some insights in my presentation titled "Docker Like a Rock Star". If you weren't there, let me fill you in because we dove into some pretty cool stuff.

First, I walked everyone through the journey that I went through creating docker-magento. I shared the why behind it, the steps I took to tackle those pesky performance issues, and the big headaches I ran into with the filesystem.

For years, we've been hearing "Docker is slow," and it's been a tough nut to crack. But, I introduced a way to dodge this with what I call "selective volume sync." (full blog post here). It's a neat trick that seems to resolve the performance issues, but even then, it's not perfect.

That's where FrankenPHP comes in.

Imagine pulling PHP and Nginx out of Docker and instead, running a super speedy app server that handles PHP directly. No middlemen to slow things down. The rest of the gang, like databases and such, they stay in Docker, doing their thing in their own space.

This could be a game-changer for running Magento. No more Docker dragging its feet and making things slower. Plus, it makes setting everything up a bit easier. You won’t need as many helper scripts or complicated domain setups anymore.

And FrankenPHP? It’s not just about speed. It’s actually even quicker than running Nginx + php-fpm, and simpler to get up & running.

What do you think about this idea? If it sounds good, why not jump in and help out?

PROUD SPONSOR

M.academy was a proud sponsor of Meet Magento India!

If you attended, I hope you had a great event 🤗

😲 Disable2FA Hits One Million Downloads

In another exciting piece of news, my "Disable 2FA Module" has hit a milestone that's pretty hard to wrap my head around - it's been downloaded over a million times, with more than 50,000 of those in just the last 30 days! 😲

So, what's the big deal with this module, you ask? Let's dive in.

When Magento 2.4 rolled out, it brought along two-factor authentication (2FA) as a default feature. No switch to flip it off in the admin or the console. Sure, 2FA is a big step up for security, but there are times, especially in development or testing, where you might need to pause it.

That's where my module steps in. It gives you a simple way to turn 2FA off while you're in developer mode and adds an option to toggle 2FA on or off in other environments, right from the admin. It hooks into Magento's core code as smoothly as if it was always meant to be there.

And don't worry about security holes; this module operates on a straightforward config toggle. If the toggle isn't set, everything defaults back to how Magento intended. Also, for those times you need to test things with 2FA on, you can easily switch it back on, even in developer mode.

I'm thrilled to see the community's response to this module. It's clear that it's filling a needed gap, and I'm glad to be a part of making Magento development a bit easier for everyone.

Get more about the module on GitHub at https://github.com/markshust/magento2-module-disabletwofactorauth

🧑‍🔬 Over 40 Magento Upgrades In One Week

In an incredible feat of efficiency and teamwork, Tjitse Efdé and his team have managed to update over 40 Magento 2 sites to PHP 8.2 in just one week. This remarkable accomplishment didn’t happen overnight; it was the result of meticulous planning and execution.

This is a cross-post from Tjitse's post on LinkedIn (who I was glad to meet at MMFL!).

The journey to this success began months ago, with the team upgrading all their client projects to Magento 2.4.6, setting the stage for the move to PHP 8.2.

When that Monday rolled around, they were ready to tackle the final hurdle: updating the remaining composer packages. Thanks to the proactive work done during the 2.4.6 update, most third-party extensions were already PHP 8.2 compatible, smoothing the path forward.

One notable highlight of this process was the seamless transition for projects running on Hyvä, which encountered zero theme-related issues.

However, the journey wasn’t without obstacles. The team faced challenges with dynamic properties in third-party extensions, a feature deprecated in PHP 8.2 that, if not addressed, could have caused crashes in Magento 2.

The team’s approach to overcoming these challenges was both systematic and effective:

  1. They utilized RectorPHP on app/code to automatically refine the codebase and declare any missing properties. Check out their specific configuration.
  2. Tools such as PHPStan and grep helped identify dynamic properties in third-party modules within the vendor folder.
  3. Composer patches were applied with the cweagans/composer-patches module to fix issues in third-party extensions.
  4. The team conducted quick front-end checks to ensure key areas of Magento functioned as expected before proceeding.
  5. With everything in order, the updates were deployed to production environments.
  6. Finally, Sentry was used for exception monitoring using the Sentry Logger module, catching any issues that might have been missed initially.

Thanks to their diligent work, Tjitse Efdé’s clients are now running their Magento 2 sites on PHP 8.2, ensuring they benefit from security updates until the end of 2025.

This achievement not only showcases the team’s technical abilities, but also their commitment to staying ahead in the ever-evolving world of web development. They’ve set a great example of how with the right knowledge, tools, and teamwork, even seemingly daunting tasks can be accomplished swiftly and smoothly.

🐇🐇🐇 Worker Queues in Magento

Just a friendly reminder about something exciting that I unveiled a few weeks back - my latest course, Magento Message Queues with RabbitMQ. If you’ve always wanted to level up your Magento skills but felt overwhelmed by the complexity of message queues, this course was made for you.

We dive deep into the world of Magento message queues, covering everything from the ground up. You’ll learn how to configure, implement, and code queues with RabbitMQ across 34 detailed lessons totaling 2 hours and 28 minutes of content. This course is designed with clarity in mind, aiming to transform you from a complete beginner to a confident user of message queues in Magento.

However, there’s a small catch - I’ve moved away from single-course enrollments. To access this bundle of knowledge, you’ll need to enroll in the University.

But here’s the good part - with this membership, not only do you get access to this brand new course, but 10+ other premium courses, as well as Campus, a private social community for aspiring Magento developers. It’s a vibrant space where you can share ideas, challenges, and successes with like-minded Magento folks.

And there’s more - you’ll also get access to Maggie Bolt, the AI chatbot tutor. Maggie is here to help guide you through your learning journey, answering questions, and making sure you’re on the right track, and can be toggled on within any premium lesson at M.academy.

Here’s a sneak peek of what the course offers:

  • Step-by-step guides to creating a sentiment analysis module, including configuring XML schema mappings in PhpStorm, creating queue topics, publishers, and consumers, and much more.
  • Practical exercises like storing and displaying API responses, with full source code provided for reference.
  • Tech-friendly closed captions in each video lesson, available in Spanish, Portuguese, French, and German translations (thanks to Google Translate!).

This fresh, up-to-date course just launched on January 30, 2024, and you’ll be sure that you’re learning the latest and most effective techniques.

For those who’ve been with me on this journey, you know my goal is always to break down complex concepts into understandable and manageable pieces. This course is no different. It’s about making the elusive world of Magento message queues and RabbitMQ integration accessible to anyone willing to learn.

If you’re ready to conquer message queues and take your Magento skills to the next level, hop on over and enroll in the University. I can’t wait to see you over on Campus and hear about all the amazing things you’ll build with your new knowledge.

💫 New Version of Adobe Commerce

Here’s a quick update on the latest Adobe Commerce patch versions released on February 13.

These are not just any ordinary updates; they’re packed with some really exciting features. Let’s dive into what’s new beyond the security patches in versions 2.4.6-p4, 2.4.5-p6, and 2.4.4-p7.

First off, for those in the healthcare sector, Adobe Commerce 2.4.6-p4 is stepping up its game with a HIPAA-ready cloud solution. This means better protection for sensitive healthcare data and helps to ensure security & compliance.

For developers, composable development just got a whole lot easier with enhanced webhook and Admin UI extension tools in App Builder. They are designed to simplify the process even further, development more smooth.

Search functionality is getting a significant boost too. Live Search now supports different AI rules for various search queries. This includes blanket "default rules" for all queries and specific algorithm strategies for merchandiser-configured queries.

Payment Services for Adobe Commerce is also expanding headless deployment support, including Adobe Experience Manager and more. This update opens up new possibilities for businesses with headless initiatives.

Learn more about this release by checking out the release notes.

NEW BLOG

File Extension Conventions in Magento's RequireJS Configuration

Magento’s implementation of mapping JavaScript and Knockout.js template files with RequireJS may seem awkward at first glance, but there is a rationale behind the approach.

Read the article →

LET'S GET SOCIAL 🕺🏼

If you missed MMFL, check out the photo gallery to see what you missed!

A question for you:

What’s the most interesting technical challenge you’ve overcome while working with Magento?


I hope you've enjoyed this issue of Segment! 👍

If you liked it, please share it with your Magento friends.

Join Segment, the Magento newsletter

Join Segment, M.academy's free monthly newsletter about Magento, read my thousands of developers & merchants to keep in touch with the industry. Check out previous issues of Segment by clicking the Posts tab below 👇

Read more from Join Segment, the Magento newsletter
M.academy Website Home Page

Aug 2024 Read by 9,000+ Magento developers.Send to a friend. Complete M.academy refresh Hey friend, It's been a few years since M.academy launched, and I thought it was time that our image got a bit of a refresh. So over the summer, I worked on a few things: A refreshed website and updated tagline: Lots of energy, bright colors, and a new focus on "mastering" Magento development rather than simply learning the fundamentals -- since there are already courses for all of those 😉 An updated look...

This hasn't been a quiet week by any means, even in Magento land. Before we get to the guts of this issue, which is all about how to debug and troubleshoot product collection issues, I need to let you know about urgent security exploit that needs to be addressed. But first, a word from our sponsor. If you are interested in order fulfillment, check out Portless: Sponsored by Portless Skip the ship, unlock cashflow and scale globally in less time Discover the future of e-commerce logistics with...

I hope everyone is having a great summer and able to take some time off! After a few meh summers, we've been enjoying some 90+ degree days in Cleveland, Ohio, and it's wonderful. I always see summer as a bit of a break from the normal coding routine, a chance to get outside of our heads and clear my mind -- a bit like starting a new year. Anyone relate? This Segment is about a new feature available in PHP 8.3. But first, a word from our sponsor: Sponsored by Portless Skip the ship, unlock...