viv-tech/rest-renderer

针对Yii2:类似于Controller::Action,但仅用于在同一位置对数据模型使用多个渲染模板。

安装次数 8,597

依赖项: 1

建议者: 0

安全性: 0

星级: 0

关注者: 3

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2017-12-14 08:26 UTC

This package is not auto-updated.

Last update: 2024-09-17 02:12:04 UTC


README

此扩展允许在一个地方为数据模型提供多个渲染模板的能力。

有关许可信息,请查看LICENSE文件。

Latest Stable Version Total Downloads Build Status

安装

安装此扩展的首选方法是使用composer

运行以下命令之一:

php composer.phar require --prefer-dist vivre-tech/rest-renderer

或添加以下内容到您的composer.json文件的require部分:

"vivre-tech/rest-renderer": "*"

用法

示例

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"
    }
}

单元测试

如果您在开发环境中运行以下命令: composer install,那么您将在/vendor/bin/phpunit中找到phpunit

如果通过composer install命令未安装phpunit,请按照以下步骤操作:

  1. 在控制台/终端中运行 brew install phpunit

要测试,在项目的root目录中,根据phpunit的安装方式,您有两个选择来运行:

  1. 通过composer install安装,您需要在控制台/终端中执行:vendor/bin/phpunit
  2. 通过bre安装,您需要在控制台/终端中执行:phpunit