ACSD-51528: Different behaviors on snake_case formatting

The ACSD-51528 patch fixes different behaviors on snake_case formatting. This patch is available when the Quality Patches Tool (QPT) 1.1.32 is installed. The patch ID is ACSD-51528. Please note that the issue is scheduled to be fixed in Adobe Commerce 2.4.7.

Affected products and versions

The patch is created for Adobe Commerce version:

  • Adobe Commerce (all deployment methods) 2.4.5-p1

Compatible with Adobe Commerce versions:

  • Adobe Commerce (all deployment methods) 2.4.5 - 2.4.6
NOTE
The patch might become applicable to other versions with new Quality Patches Tool releases. To check if the patch is compatible with your Adobe Commerce version, update the magento/quality-patches package to the latest version and check the compatibility on the Quality Patches Tool: Search for patches page. Use the patch ID as a search keyword to locate the patch.

Issue

The different behaviors on snake_case formatting.

Steps to reproduce:

  1. Test the \Magento\Framework\Api\DataObjectHelper::populateWithArray function with a variety of different property names.
  2. The properties with names like NewPName should be transformed into new_p_name, instead they’re being transformed to new_pname.
  3. Also, when using the getNewPName function in the object, null will be returned because the Abstract model will correctly transform the call to new_p_name making both functions incompatible with each other.

Expected results

The populateWithArray function should transform the object properties to snake_case correctly, making it compatible with the AbstractModel’s Getters and Setters.

Actual results

When using the populateWithArray function, any object properties that contain two or more capital letters in a row in its name will cause the snake_case transformation to be incorrect in the final data array.

Apply the patch

To apply individual patches, use the following links depending on your deployment method:

To learn more about Quality Patches Tool, refer to:

For info about other patches available in QPT, refer to Quality Patches Tool: Search for patches in the Quality Patches Tool guide.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a