public function callProtectedMethod($objectOrClass, $method, $args = [])
{
$reflection = new ReflectionClass($objectOrClass);
$reflectionMethod = $reflection->getMethod($method);
$reflectionMethod->setAccessible(true);
$reflectionTarget = is_object($objectOrClass) ? $objectOrClass : null;
return $reflectionMethod->invokeArgs($reflectionTarget, $args);
}