getMethod($methodName); $method->setAccessible(true); return $method->invokeArgs($object, $parameters); } public function setProtectedProperty(&$object, $property, $value) { $reflection = new \ReflectionClass($object::class); $prop = $reflection->getProperty($property); $prop->setAccessible(true); return $prop->setValue($object, $value); } public function getProtectedProperty(&$object, $property) { $reflection = new \ReflectionClass($object::class); $prop = $reflection->getProperty($property); $prop->setAccessible(true); return $prop->getValue($object); } }