1. Go to this page and download the library: Download psx/nested 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/ */
psx / nested example snippets
$connection = null; // a doctrine DBAL connection
$builder = new \PSX\Nested\Builder($connection);
$definition = [
'totalResults' => $builder->doValue('SELECT COUNT(*) AS cnt FROM psx_sql_provider_news', [], $builder->fieldInteger('cnt')),
'entries' => $builder->doCollection('SELECT * FROM psx_sql_provider_news ORDER BY id DESC', [], [
'id' => $builder->fieldInteger('id'),
'title' => $builder->fieldCallback('title', function($title){
return ucfirst($title);
}),
'author' => $builder->doEntity('SELECT * FROM psx_sql_provider_author WHERE id = ?', [new Reference('author_id')], [
'id' => $builder->fieldFormat('id', 'urn:profile:%s'),
'name' => 'name',
'uri' => 'uri',
]),
'tags' => $builder->doColumn('SELECT title FROM psx_sql_provider_news', [], 'title'),
'date' => $builder->fieldDateTime('create_date'),
])
];
$result = $builder->build($definition);
echo \json_encode($result);
$json = '{}'; // JSON from above
$provider = new JsonProvider($this->connection);
$result = $provider->create(\json_decode($json));
echo \json_encode($result);
json
{
"totalEntries": {
"$value": "SELECT COUNT(*) AS cnt FROM psx_sql_provider_news",
"$definition": {
"$key": "cnt",
"$field": "integer"
}
},
"entries": {
"$collection": "SELECT id, author_id, title, create_date FROM psx_sql_provider_news ORDER BY id ASC LIMIT :startIndex, 8",
"$params": {
"startIndex": 0
},
"$definition": {
"id": {
"$key": "id",
"$field": "integer"
},
"title": "title",
"tags": {
"$column": "SELECT title FROM psx_sql_provider_news",
"$definition": "title"
},
"author": {
"$entity": "SELECT id, name, uri FROM psx_sql_provider_author WHERE id = :id",
"$params": {
"id": {
"$ref": "author_id"
}
},
"$definition": {
"displayName": "name",
"uri": "uri"
}
}
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.