$value) { $setter = self::getSetterMethod($key); if (method_exists($message, $setter)) { $message->{$setter}($value); } } return $message; } /** * Generate a setter method name based on a provided key. * * @param string $key * @return string */ private static function getSetterMethod($key) { return 'set' . str_replace( ' ', '', ucwords( strtr( $key, [ '-' => ' ', '_' => ' ', ] ) ) ); } }