PHP code example of prezly / draft-php
1. Go to this page and download the library: Download prezly/draft-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
prezly / draft-php example snippets
// raw JSON content state coming from Draft.js frontend
$json = '{
"blocks":[
{
"key": "7si2a",
"text": "Say hello to world!",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [
{
"style": "BOLD",
"offset": 0,
"length": 9
}
],
"entityRanges": [
{
"key": "0",
"offset": 0,
"length": 9
}
],
"data": {}
}
],
"entityMap":{
"0":{
"type":"link",
"mutability":"MUTABLE",
"data":{
"href":"https://www.prezly.com/"
}
}
}
}';
// convert raw JSON state to ContentState model object
$contentState = \Prezly\DraftPhp\Converter::convertFromJson($json);
// or
$rawState = json_decode($json); // Note: raw state should be an stdClass object, not an associative array
$contentState = \Prezly\DraftPhp\Converter::convertFromRaw($rawState);
var_dump($contentState);
/*
Prezly\DraftPhp\Model\ContentState {
-_blocks: array:1 [
0 => Prezly\DraftPhp\Model\ContentBlock {#1507
-_key: "7si2a"
-_type: "unstyled"
-_text: "Say hello to world!"
-_characterList: array:19 [
0 => Prezly\DraftPhp\Model\CharacterMetadata {#1506
-_style: ["BOLD"]
-_entity: "0"
}
1 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
2 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
3 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
4 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
5 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
6 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
7 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
8 => Prezly\DraftPhp\Model\CharacterMetadata {#1506}
9 => Prezly\DraftPhp\Model\CharacterMetadata {#1490
-_style: []
-_entity: null
}
10 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
11 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
12 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
13 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
14 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
15 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
16 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
17 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
18 => Prezly\DraftPhp\Model\CharacterMetadata {#1490}
]
-_depth: 0
-_data: []
}
]
-_entityMap: array:1 [
0 => Prezly\DraftPhp\Model\EntityInstance {#1505
-_type: "link"
-_mutability: "MUTABLE"
-_data: array:1 [
"href" => "https://www.prezly.com/"
]
}
]
}
*/
var_dump($contentState->blocks[0]->characterList[0]);
/*
Prezly\DraftPhp\Model\CharacterMetadata {#1506
-_style: ["BOLD"]
-_entity: "0"
}
*/
var_dump($contentState->getEntity($contentState->blocks[0]->characterList[0]->entity));
/*
Prezly\DraftPhp\Model\EntityInstance {#1505
-_type: "link"
-_mutability: "MUTABLE"
-_data: array:1 [
"href" => "https://www.prezly.com/"
]
}
*/
// convert raw JSON state to ContentState model object
$contentState = \Prezly\DraftPhp\Converter::convertFromJson($json);
$serializedJson = \Prezly\DraftPhp\Serializer::serialize($contentState);
// or
$serializedJson = json_serialize($contentState);
// now $json is equivalent to $serializedJson (formatting and order may differ though)
// see SerializerTest for examples