PropertyBag call deprecatedFunctionWarning on array access to custom props
authorRich Lott / Artful Robot <forums@artfulrobot.uk>
Mon, 15 Jun 2020 06:17:34 +0000 (07:17 +0100)
committerRich Lott / Artful Robot <forums@artfulrobot.uk>
Mon, 15 Jun 2020 07:32:19 +0000 (08:32 +0100)
Civi/Payment/PropertyBag.php

index 97d8f034303c04ee623127f4519ef89d3fdc32e0..bf94a02b0d8e0799a9e50922a271a30f0380227f 100644 (file)
@@ -130,6 +130,10 @@ class PropertyBag implements \ArrayAccess {
         return $this->getCustomProperty($offset, 'default');
       }
       catch (BadMethodCallException $e) {
+        \CRM_Core_Error::deprecatedFunctionWarning(
+          "Use \$propertyBag->setCustomProperty('$offset', \$value) and then \$propertyBag->getCustomProperty('$offset') instead.",
+          "Accessing a not-set custom property via array access is deprecated. We're returning NULL for now but you should update your code."
+        );
         $this->legacyWarning($e->getMessage() . " calling getCustomProperty on a non-set property will result in a BadMethodCallException exception, but for your legacy use we have returned NULL. Please update your code.");
         return NULL;
       }