This extension provides the ability to have multiple rendering templates in one place for data models.
For license information check the LICENSE-file.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist vivre-tech/rest-renderer
or add
"vivre-tech/rest-renderer": "*"
to the require section of your composer.json.
Example:
use vivretech\rest\renderer\DataRenderer;
class DummyModelRenderer extends DataRenderer
{
/**
* @param array $params
* @return mixed
*/
public function renderMain($params = [])
{
return [];
}
public function renderSummary($model)
{
return [
'name' => $model['name'],
'price' => $model['price'],
];
}
public function renderDetailed($model)
{
return [
'id' => $model['id'],
'name' => $model['name'],
'price' => $model['price'],
'created_at' => $model['created_at'],
];
}
}
$render = new DummyModelRenderer();
$productModel = [
'id' => 1,
'name' => 'Product 1',
'price' => 100,
'created_at' => date('Y-m-d H:i:s')
];
/* Output JSON -> Dummy REST response. */
header("Content-Type: application/json;charset=utf-8");
echo
json_encode([
'productSummary' => $render->run('summary', [$productModel]),
'productDetailed' => $render->run('Detailed', [$productModel]),
]);
{
"productSummary": {
"name": "Product 1",
"price": 100
},
"productDetailed": {
"id": 1,
"name": "Product 1",
"price": 100,
"created_at": "2017-12-14 08:25:06"
}
}
If you run the following command: composer install
in a dev environment then you will find phpunit
in /vendor/bin/phpunit
.
In case phpunit
in not installed via command composer install
, just fallow next steps:
- run in console/terminal
brew install phpunit
To test, in the root
of the project, base on how phpunit
is installed you will have two choices to run:
- installed via command
composer install
you will have to execute in console/terminal:vendor/bin/phpunit
- installed via
bre
you will have to execute in console/terminal:phpunit