diff --git a/include/Webservices/WebserviceField.php b/include/Webservices/WebserviceField.php
index 58018452be69871808dbcb971fc6de36f8952682..d1ca206d49111f80ab09e110d8fff6165b36e770 100644
--- a/include/Webservices/WebserviceField.php
+++ b/include/Webservices/WebserviceField.php
@@ -62,7 +62,7 @@ class WebserviceField{
 		$this->isunique = isset($row['isunique']) && $row['isunique'] ? true : false;
 		$typeOfData = isset($row['typeofdata'])? $row['typeofdata'] : null;
 		$this->typeOfData = $typeOfData;
-		$typeOfData = explode("~",$typeOfData);
+		$typeOfData = explode("~",$typeOfData ? $typeOfData : "");
 		$this->mandatory = (php7_count($typeOfData) > 1 && $typeOfData[1] == 'M')? true: false;
 		if($this->uitype == 4){
 			$this->mandatory = false;
@@ -429,4 +429,4 @@ class WebserviceField{
 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/include/events/SqlResultIterator.inc b/include/events/SqlResultIterator.inc
index 11f4583d36ab05040796b5ceb0a059d313e9cd2a..490b238011d670e922c16c89b8fc4bdbb02856bc 100644
--- a/include/events/SqlResultIterator.inc
+++ b/include/events/SqlResultIterator.inc
@@ -8,7 +8,12 @@
  * All Rights Reserved.
  *************************************************************************************/
 
+	#[\AllowDynamicProperties]
 	class SqlResultIterator implements Iterator{
+		var $result;
+		var $adb;
+		var $pos;
+		
 		function __construct($adb, $result){
 			$this->result = $result;
 			$this->adb = $adb;
@@ -79,6 +84,8 @@
 	}
 	
 	class SqlResultIteratorRow{
+		var $data;
+		
 		function __construct($data){
 			$this->data = $data;
 		}
diff --git a/include/events/VTEntityData.inc b/include/events/VTEntityData.inc
index 853dbb7856fc86fc121a967cff9be072ecf10d41..8a87e4e0f0f1200c77550f3e57996229db00fe5e 100644
--- a/include/events/VTEntityData.inc
+++ b/include/events/VTEntityData.inc
@@ -11,6 +11,7 @@
 /**
  * A wrapper around CRMEntity instances
  */
+#[\AllowDynamicProperties]
 class VTEntityData{
 	private $isNew = false;
 
diff --git a/include/events/VTEventCondition.php b/include/events/VTEventCondition.php
index e16766401549c48fe3b91bd38a6c8542c399fb07..40c8c74d2438253138615d23b6e8734837cba64b 100644
--- a/include/events/VTEventCondition.php
+++ b/include/events/VTEventCondition.php
@@ -8,6 +8,7 @@
  * All Rights Reserved.
  *************************************************************************************/
 
+	#[\AllowDynamicProperties]
 	class VTEventCondition{
 		function __construct($expr){
 			if($expr!=''){
@@ -79,4 +80,4 @@
 			
 		}
 	}
-?>
\ No newline at end of file
+?>
diff --git a/include/events/VTEventTrigger.inc b/include/events/VTEventTrigger.inc
index e5456154898e7fb8d3ca17bd645b97ae409cd5c4..09545ae1056118a0c3627eda48781411142aa7a5 100644
--- a/include/events/VTEventTrigger.inc
+++ b/include/events/VTEventTrigger.inc
@@ -9,6 +9,8 @@
  *************************************************************************************/
 	require_once 'include/events/VTBatchEventTrigger.inc';
 	require_once("include/events/SqlResultIterator.inc");
+
+	#[\AllowDynamicProperties]
 	class VTEventTrigger{
 
 		/* EventTrigger cache management */
@@ -168,4 +170,4 @@
 			return new self($adb, $triggerName);
 		}
 	}
-?>
\ No newline at end of file
+?>
diff --git a/modules/com_vtiger_workflow/VTTaskManager.inc b/modules/com_vtiger_workflow/VTTaskManager.inc
index 8f7058f73fdedde294375615936eb4a1dc4a038f..a41e04fe10fd819cd12f4aea7a2b16576e5ef7ce 100644
--- a/modules/com_vtiger_workflow/VTTaskManager.inc
+++ b/modules/com_vtiger_workflow/VTTaskManager.inc
@@ -11,6 +11,7 @@
 	/**
 	 * Functionality to save and retrieve Tasks from the database.
 	 */
+	#[\AllowDynamicProperties]
 	class VTTaskManager{
 		function __construct($adb){
 			$this->adb = $adb;
@@ -153,6 +154,7 @@
 
 	}
 
+	#[\AllowDynamicProperties]
 	abstract class VTTask{
 		public abstract function doTask($data);
 		public abstract function getFieldNames();
diff --git a/modules/com_vtiger_workflow/VTWorkflowManager.inc b/modules/com_vtiger_workflow/VTWorkflowManager.inc
index 276150c4c46bb74e7f32317e0b570d4ab2fb52d7..395df1cc4dfe334c0456df230993a67bfed55c06 100644
--- a/modules/com_vtiger_workflow/VTWorkflowManager.inc
+++ b/modules/com_vtiger_workflow/VTWorkflowManager.inc
@@ -12,6 +12,7 @@ require_once("VTJsonCondition.inc");
 require_once 'include/utils/ConfigReader.php';
 require_once 'includes/runtime/Cache.php';
 
+#[\AllowDynamicProperties]
 class VTWorkflowManager{
 
 	static $ON_FIRST_SAVE = 1;
@@ -341,6 +342,7 @@ class VTWorkflowManager{
 	}
 }
 
+#[\AllowDynamicProperties]
 class Workflow{
 	static $SCHEDULED_HOURLY = 1;
 	static $SCHEDULED_DAILY = 2;
diff --git a/vtlib/Vtiger/Link.php b/vtlib/Vtiger/Link.php
index 878f21a231c5f78fd5789ae2459a76c08e45e6bc..278b3dc7bc00b7f04eaa1ccecf16cf372ed349f8 100644
--- a/vtlib/Vtiger/Link.php
+++ b/vtlib/Vtiger/Link.php
@@ -15,7 +15,8 @@ include_once 'vtlib/Vtiger/LinkData.php';
  * Provides API to handle custom links
  * @package vtlib
  */
-class Vtiger_Link {
+ #[\AllowDynamicProperties]
+ class Vtiger_Link {
 	var $tabid;
 	var $linkid;
 	var $linktype;