. */ namespace Doctrine\DBAL\Types; use Doctrine\DBAL\Platforms\AbstractPlatform; /** * Type that maps an SQL BLOB to a PHP resource stream * * @since 2.2 */ class BlobType extends Type { /** @override */ public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) { return $platform->getBlobTypeDeclarationSQL($fieldDeclaration); } /** * Converts a value from its database representation to its PHP representation * of this type. * * @param mixed $value The value to convert. * @param AbstractPlatform $platform The currently used database platform. * @return mixed The PHP representation of the value. */ public function convertToPHPValue($value, AbstractPlatform $platform) { if (null === $value) { return null; } if (is_string($value)) { $value = fopen('data://text/plain;base64,' . base64_encode($value), 'r'); } else if ( ! is_resource($value)) { throw ConversionException::conversionFailed($value, self::BLOB); } return $value; } public function getName() { return Type::BLOB; } public function getBindingType() { return \PDO::PARAM_LOB; } }