getName()); $sId = str_replace(' ', '_', $sId); return $sId; } /** * @since 2.7.4 3.0.0 */ public function InvokeNonPublicStaticMethod($sObjectClass, $sMethodName, $aArgs) { return $this->InvokeNonPublicMethod($sObjectClass, $sMethodName, null, $aArgs); } /** * @param string $sObjectClass for example DBObject::class * @param string $sMethodName * @param object $oObject * @param array $aArgs * * @return mixed method result * * @throws \ReflectionException * * @since 2.7.4 3.0.0 */ public function InvokeNonPublicMethod($sObjectClass, $sMethodName, $oObject, $aArgs) { $class = new \ReflectionClass($sObjectClass); $method = $class->getMethod($sMethodName); $method->setAccessible(true); return $method->invokeArgs($oObject, $aArgs); } /** * @param object $oObject * @param string $sProperty * * @return mixed property * * @throws \ReflectionException * @since 2.7.8 3.0.3 3.1.0 */ public function GetNonPublicProperty(object $oObject, string $sProperty) { $class = new \ReflectionClass(get_class($oObject)); $property = $class->getProperty($sProperty); $property->setAccessible(true); return $property->getValue($oObject); } /** * @param object $oObject * @param string $sProperty * @param $value * * @throws \ReflectionException * @since 2.7.8 3.0.3 3.1.0 */ public function SetNonPublicProperty(object $oObject, string $sProperty, $value) { $class = new \ReflectionClass(get_class($oObject)); $property = $class->getProperty($sProperty); $property->setAccessible(true); $property->setValue($oObject, $value); } }