25.5.0 #170
fballiano
announced in
Announcements
25.5.0
#170
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🎉🎉 Welcome to a new release of Maho, the ecommerce platform that innovates without reinventing the wheel! 🎉🎉
This release focuses on fortifying Maho's core with essential security upgrades, performance optimizations, and developer tools that modernize the platform while eliminating legacy dependencies.
Creating Maho is a massive effort that requires all the help possible, please join our sponsorship program.

It will make all the difference in the world!
Maho rocks! 🚀
https://mahocommerce.com
https://demo.mahocommerce.com
🚀 New features and major improvements
Migrated encryption library from
mcrypttolibsodiumThis critical security upgrade replaces the deprecated mcrypt extension (removed in PHP 7.2 and provided through a polyfill until now) with the modern, high-security libsodium cryptographic library. The migration delivers state-of-the-art encryption algorithms, constant-time implementations to prevent timing attacks, and significantly improved performance. Beyond meeting modern security standards, this change future-proofs Maho's cryptographic foundation while maintaining backward compatibility with existing encrypted data.
This change also adds the
./maho sys:encryptionkey:regenerateCLI command, which allows you to generate a new encryption key and re-encrypt all the encrypted data in your database automatically (forcoredatabase tables) or manually (hooking into the newencryption_key_regeneratedevent, check this sample implementation in the Mage_Payment module).sys:encryptionkey:regeneratealso adds health check for key migrations mcrypt -> libsodium and more.Now it's possible to implement real encryption key rolling routines, like any modern ecommerce project should.
Replaced internal image generation with
intervention/imageUp until now, the M1 platform had custom code to handle image generation, resize and conversion, which had limitations and bugs and was falling short in a modern world with new image compression formats. This is why we completely removed the legacy code and replaced it with the most used image handling package in the PHP world, with 150M+ downloads:
intervention/image.In case you have the high performance
VIPSlibrary installed, the newMaho::getImageManager()automatically loads and use it for you, providing, among other things,HEICformat support.Frontend: an autocomplete that actually makes sense
The search autocomplete experience has been completely rewritten from the ground up and now, without the need for any 3rd party module, it's fully functional like never before.
The new Autocomplete previews products matching the search criteria, showing product name, prices and the thumbnail picture, in a mobile optimized layout.
Added Meta Pixel (Facebook Pixel) support to the GoogleAnalytics module
Any modern ecommerce platform should provide complete support for Google Analytics 4 and Meta Pixel, with enhanced ecommerce data, and Maho 25.5 fills the gap for this last point.
Rewrote the whole cache subsystem based on
symfony/cache, removing the oldZend_CacheSymfony cache component provides us with performant, well maintained and secure cache layer for Maho, and it also provides us with built-in
Redissupport (no 3rd party modules required anymore!)Added possibility to set
local.xmlcontent via environment variableMAHO_LOCAL_XMLDeployment and environment management just became significantly more flexible with the addition of environment variable configuration for
local.xml. This DevOps-friendly improvement allows you to inject your entire configuration through theMAHO_LOCAL_XMLenvironment variable, eliminating the need for file-based configuration management in containerized environments.Official docker images based on FrankenPHP
25.5.0 marks the start of our official Docker images repository, available on
Docker Huband automatically built viaDocker Cloud Buildthrough our Docker images source repository.We are supporting a comprehensive list of tags, covering all possible usages:
nightlywhich will replicate all changes on ourmaindevelopment branchlatestwhich will point to our latest stable release (25.5.0 in this moment) with latest FrankenPHP and available PHP versionReplaced
Zend_Locale_DatawithIntlDateFormatterinMage_Adminhtml_Block_Report_Sales_Grid_Column_Renderer_DateAs we moved away from prototypejs for the whole frontend (backend in work in progress), we will need to move away from Zend Framework 1 sooner than later, and 25.5.0 marks the first major step in this direction. Modern PHP provides highly performant and feature rich set of locale related functions that we start to leverage with this release. There's no visible change here, but it's very important nevertheless.
Added "redirect to product page if search generates one result" feature
A minor technical change, but a good quality of life improvement. Simply browse to
System -> Configuration -> Catalog -> Catalog Searchand enable it, as simple as that!Major, but not headline
Mage::getVersion()now returns Maho version by @fballiano inMage::getVersion()now returns Maho version #164Important, but not major
main_table.prefix to filter_index in grids that use the additional_gridtableLess important changes
mage/adminhtml/sales.jswithout prototypejsphpseclib/phpseclibas a dependencyVarien_Db_Adapter_Pdo_Mysql::_removeDuplicateEntry()when creating an indexFull Changelog: 25.3.0...25.5.0
This discussion was created from the release 25.5.0.
All reactions