Вы можете использовать такую функцию:
function class_constant($class, $constant)
{
if ( ! is_string($class)) {
$class = get_class($class);
}
return constant($class . '::' . $constant);
}
Требуется два аргумента:
Если экземпляр объекта передан, его имя класса выводится. Если вы используете PHP 7, вы можете использовать ::class
для передачи соответствующего имени класса, не задумываясь о пространствах имен.
class MyClass
{
const MY_CONSTANT = 'value';
}
class_constant('MyClass', 'MY_CONSTANT'); # 'value'
class_constant(MyClass::class, 'MY_CONSTANT'); # 'value' (PHP 7 only)
$myInstance = new MyClass;
class_constant($myInstance, 'MY_CONSTANT'); # 'value'
Транзакции в Prisma еще не реализованы. Однако в их github есть некоторые проблемы, связанные с этим: