Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5979447
JsonType.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
JsonType.php
View Options
<?php
namespace
Doctrine\DBAL\Types
;
use
Doctrine\DBAL\Platforms\AbstractPlatform
;
use
Doctrine\Deprecations\Deprecation
;
use
JsonException
;
use
function
is_resource
;
use
function
json_decode
;
use
function
json_encode
;
use
function
stream_get_contents
;
use
const
JSON_PRESERVE_ZERO_FRACTION
;
use
const
JSON_THROW_ON_ERROR
;
/**
* Type generating json objects values
*/
class
JsonType
extends
Type
{
/**
* {@inheritDoc}
*/
public
function
getSQLDeclaration
(
array
$column
,
AbstractPlatform
$platform
)
{
return
$platform
->
getJsonTypeDeclarationSQL
(
$column
);
}
/**
* {@inheritDoc}
*
* @param T $value
*
* @return (T is null ? null : string)
*
* @template T
*/
public
function
convertToDatabaseValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
}
try
{
return
json_encode
(
$value
,
JSON_THROW_ON_ERROR
|
JSON_PRESERVE_ZERO_FRACTION
);
}
catch
(
JsonException
$e
)
{
throw
ConversionException
::
conversionFailedSerialization
(
$value
,
'json'
,
$e
->
getMessage
(),
$e
);
}
}
/**
* {@inheritDoc}
*/
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
||
$value
===
''
)
{
return
null
;
}
if
(
is_resource
(
$value
))
{
$value
=
stream_get_contents
(
$value
);
}
try
{
return
json_decode
(
$value
,
true
,
512
,
JSON_THROW_ON_ERROR
);
}
catch
(
JsonException
$e
)
{
throw
ConversionException
::
conversionFailed
(
$value
,
$this
->
getName
(),
$e
);
}
}
/**
* {@inheritDoc}
*/
public
function
getName
()
{
return
Types
::
JSON
;
}
/**
* {@inheritDoc}
*
* @deprecated
*/
public
function
requiresSQLCommentHint
(
AbstractPlatform
$platform
)
{
Deprecation
::
triggerIfCalledFromOutside
(
'doctrine/dbal'
,
'https://github.com/doctrine/dbal/pull/5509'
,
'%s is deprecated.'
,
__METHOD__
,
);
return
!
$platform
->
hasNativeJsonType
();
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Oct 3, 20:54 (5 d, 1 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d1/89/db25893b3b9feccbd4c432df3ec3
Default Alt Text
JsonType.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment