getProperty($propertyName); // Only call setAccessible for PHP < 8.1.0 if (PHP_VERSION_ID < 80100) { $property->setAccessible(true); } return $property; } /** * Get the value of a private/protected property * * @param object $object * @param string $propertyName * @return mixed */ protected function getPropertyValue($object, string $propertyName) { $property = $this->getAccessibleProperty($object, $propertyName); return $property->getValue($object); } /** * Set the value of a private/protected property * * @param object $object * @param string $propertyName * @param mixed $value * @return void */ protected function setPropertyValue($object, string $propertyName, $value): void { $property = $this->getAccessibleProperty($object, $propertyName); $property->setValue($object, $value); } }