Вход Регистрация
Файл: vendor/doctrine/dbal/src/Types/ObjectType.php
Строк: 81
<?php

namespace DoctrineDBALTypes;

use 
DoctrineDBALPlatformsAbstractPlatform;
use 
DoctrineDeprecationsDeprecation;

use function 
is_resource;
use function 
restore_error_handler;
use function 
serialize;
use function 
set_error_handler;
use function 
stream_get_contents;
use function 
unserialize;

/**
 * Type that maps a PHP object to a clob SQL type.
 *
 * @deprecated Use {@link JsonType} instead.
 */
class ObjectType extends Type
{
    
/**
     * {@inheritDoc}
     */
    
public function getSQLDeclaration(array $columnAbstractPlatform $platform)
    {
        return 
$platform->getClobTypeDeclarationSQL($column);
    }

    
/**
     * {@inheritDoc}
     *
     * @param mixed $value
     *
     * @return string
     */
    
public function convertToDatabaseValue($valueAbstractPlatform $platform)
    {
        return 
serialize($value);
    }

    
/**
     * {@inheritDoc}
     */
    
public function convertToPHPValue($valueAbstractPlatform $platform)
    {
        if (
$value === null) {
            return 
null;
        }

        
$value is_resource($value) ? stream_get_contents($value) : $value;

        
set_error_handler(function (int $codestring $message): bool {
            throw 
ConversionException::conversionFailedUnserialization($this->getName(), $message);
        });

        try {
            return 
unserialize($value);
        } finally {
            
restore_error_handler();
        }
    }

    
/**
     * {@inheritDoc}
     */
    
public function getName()
    {
        return 
Types::OBJECT;
    }

    
/**
     * {@inheritDoc}
     *
     * @deprecated
     */
    
public function requiresSQLCommentHint(AbstractPlatform $platform)
    {
        
Deprecation::triggerIfCalledFromOutside(
            
'doctrine/dbal',
            
'https://github.com/doctrine/dbal/pull/5509',
            
'%s is deprecated.',
            
__METHOD__,
        );

        return 
true;
    }
}
Онлайн: 0
Реклама