private function begin($object, $prop) : ExtendedPdoInterface
    {
        try {
            $ref = new \ReflectionProperty($object, $prop);
        } catch (\ReflectionException $e) {
            throw new InvalidTransactionalPropertyException($prop, 0, $e);
        }
        $ref->setAccessible(true);
        $db = $ref->getValue($object);
        $db->beginTransaction();

        return $db;
    }
private function begin($object, $prop) : ExtendedPdoInterface
    {
        try {
            $ref = new \ReflectionProperty($object, $prop);
        } catch (\ReflectionException $e) {
            throw new InvalidTransactionalPropertyException($prop, 0, $e);
        }
        $ref->setAccessible(true);
        $db = $ref->getValue($object);
        $db->beginTransaction();

        return $db;
    }
@param object $object the object having pdo
@param string $prop   the name of pdo property

@throws InvalidTransactionalPropertyException

@return \Pdo