πŸ§‘β€πŸ’» RabbitMQ update, Magento Admin tracker, website update & more


​

I hope you had a great holiday season and are getting back into the swing of things in the new year πŸ˜„
I'll be at Meet Magento Florida in a couple weeks, and really hope to see many of you there! πŸ‘‹ It's been single-digit temperatures in Cleveland all week, so I'm very much looking forward to warming up a bit on this trip.
If you're going, please reply and let me know so we can be sure to meet up.

​

β˜€οΈ Meet Magento Florida Live Workshop

I'm very excited to announce that I'll be presenting a live, 2-hour Adobe Commerce Business Practitioner workshop at Meet Magento Florida! And because it'll be fully sponsored by Rave Digital (Aheadworks) and myself, it's completely free (normally $199).

Note that this is an in-person event, and you need to attend the conference in Florida in order to attend the workshop. It will not be live-streamed. If you are attending, consider coming to the conference a day early to attend the workshop on January 31.

If you are interested in attending, you'll still need to register for this free event, as it's strictly limited to the first 30 participants.

​Get more info and register for the workshop​
(must already be attending MMFL in-person)

​

πŸ‡πŸ‡πŸ‡ Final touches on the RabbitMQ course

Just a heads up -- I'm in the final stages of polishing off my latest course: Magento Message Queues with RabbitMQ. I had a blast with this one!

Message queues let us postpone the execution of certain chunks of code. You're probably asking why you would want to do this. Well, it boils down to this: some code is complex, and takes more time to run. And if you don't need to see the result of immediately running that code, you can pass it off to the background.

What we can do is toss the info needed for the task onto a "queue" -- think of it as a waiting line of messages. "Consumers" (or workers) grab these messages, use the info you gave them, and get to work running the code. These consumers are long-running processes, so they keep listening for new messages to enter the queue.

This is where RabbitMQ comes into play. It's an async message queue server, with full Magento support. RabbitMQ follows the AMQP protocol, which helps define how the queue server handles message queues.

You may think this slows down the execution of code, but in my experience, that's not the case -- aside from the tiny bit of lag it takes for the message to be added to the queue and picked up by the consumer. Watching it in action, you'd barely notice the message in the queue. It's really fast.

So... when would you want to use this?

Whenever you have any code that would slow down everything else that ran with it. This is because PHP typically executes lines of code synchronously, one at a time, in sequential order. Another reason to use a queue is when you have tons of data to process, such as an import. Rather than processing it all at once, you can break it down into many messages to process each row separately. This also lessons the resource burden on your server, making everything run more smoothly & quickly.

RabbitMQ has been my most requested topic in the Suggestion Box on Campus. Digging into learning it, I stumbled across some super dense explanations that almost buried meβ€”until I stripped it back to the basics. That's why it was a perfect fit for a M.academy course πŸ˜„

The curriculum's all set, and I'm just scripting the final few lessons. Lessons will start to be published next week, and the entire course will be complete by the end of this month. Since courses are no longer available for individual purchase, this course will only be available to University students. And if you enroll now, you'll get instant access to these lessons as soon as they start dropping next week.

​

πŸ§‘β€πŸ’» New M.academy article search

I've decided to revamp the blog articles on the M.academy site a bit, and while doing so, thought it would be nice to add a search functionality to the site:

I found myself constantly going to this page, but having difficulty finding certain articles.

It was actually super easy to integrate a search function into this site! If you didn't know, the M.academy site runs Nuxt.js -- which is basically the Vue version of Next.js. It contains a content module which adds the capability to easily create markdown-formatted content, and also the ability to create statically-generated pages, which is why the site loads so quickly.

I did this by adding a "@submit.prevent" event modifier to execute a submitSearch function, which contained a simple text input that was linked to a "keywords" model:

Then, the submitSearch functionality just posts to a different endpoint with the keywords:

(Well, it actually uses pushState for a fluid transition from one route to another, but it's essentially a post to an endpoint.)

Within the new route, it will simply call the fetchSearchResults() method on mount (since every page in Nuxt is just a component), which will then query the article content with the search() function, fetching the related content to be displayed dynamically on the site.

I really love the combo of Vue + Nuxt.js. Even though Vue is entirely based on JavaScript, it aligns really well with standard web development methodologies -- a lot better than the React design paradigm does.

HyvΓ€ uses Alpine, which I see as a "mini Nuxt" that follows very similar syntax and methodologies. And projects such as Vue Storefront (which has Magento support) are becoming increasingly popular due to their ease of development.

The syntax also aligns really well for those that typically only work with backend programming languages such as PHP, because the architecture design & concepts are fairly simple to pick up.

​

πŸ•΅οΈβ€β™€οΈ Cool module! Magento Admin Tracker

If you've ever wanted to track every single admin action in Magento... check this module out.
The Magento Activity Module provides you with a full audit trail of all actions conducted within the Magento admin.

This can be incredibly useful for merchants, contractors, interns... or just to track internally activity to avoid he said / she said situations πŸ˜„

Get the module for free on GitHub at https://github.com/catgento/magento2-admin-activity​

Have any neat module ideas? Reply back and let me know about them!

​

​

NEW YOUTUBE VIDEO

Do You Really Know PHP Class Visibility Scopes?

Visibility scopes in PHP classes often trip up even experienced developers. Learn the key principles you need to avoid major pitfalls.

Watch on YouTube β†’

​

​

LET'S GET SOCIAL πŸ•ΊπŸΌ

I'm excited to now be a Top Voice on LinkedIn! πŸŽ‰

I believe I'm the only Magento personality to hold this designation, and I've worked very hard over the last 3 years to earn this recognition badge in response to posting great content daily.

​

​

A question for you:

What's something you know now about Magento that you wish you had understood earlier in your journey as a developer?

​


​

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...