I am setting up a module to run on our Magento 2.4.6-p5 multi-website instances.
The module requires that a dropdown category attribute be setup with a default value and n
other options (1 initially).
I have this working as is but my question is on the XML and PHP class constants. I know I can use the class constants within the XML element node values and this is what I am doing for example in the field->argument->item[name=”config”]->item[name=”default”] here:
...
<field name="meps_scale">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">MyVendorMyModuleModelCategoryAttributeSourceMepsScale</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">string</item>
<item name="formElement" xsi:type="string">select</item>
<item name="default" xsi:type="string">MyVendorMyModuleHelperData::DEFAULT_MEPS_SCALE_VALUE</item>
</item>
</argument>
</field>
...
My question is, can I use a class constant within a node attribute? And if so, how?
The use case being that I would like to replace the field name:
<field name="meps_scale">
with the PHP class constant of the attribute ID. Such as this pseudo code:
<field name="MyVendorMyModuleHelperData::MEPS_SCALE_ATTR_ID">
I have looked at some of the Magento core module category_form.xml
files but it seems they use literal values in the majority of modules.