PHPackages                             codespede/yii2-template-renderer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. codespede/yii2-template-renderer

ActiveYii2-extension[HTTP &amp; Networking](/categories/http)

codespede/yii2-template-renderer
================================

Facility for rendering data in any custom format/structure with just a parent-view, child-view and DataProvider

1.0.1(7y ago)018PHPPHP &gt;=5.4.0

Since Oct 6Pushed 7y ago2 watchersCompare

[ Source](https://github.com/codespede/yii2-template-renderer)[ Packagist](https://packagist.org/packages/codespede/yii2-template-renderer)[ RSS](/packages/codespede-yii2-template-renderer/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (1)Versions (4)Used By (0)

Template Renderer for Yii 2
===========================

[](#template-renderer-for-yii-2)

Facilitates rendering data in any custom format/structure with just a parent-view, child-view and DataProvider(Supports pagination, sorting, filtering and all other operations supported by DataProvider).

Though this extension is mainly intended for RESTful APIs built in Yii 2, it can be used anywhere in the application as explained below.

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require codespede/yii2-template-renderer "*"

```

or add

```
"codespede/yii2-template-renderer": "*"
```

to the `require` section of your composer.json.

Use Cases
---------

[](#use-cases)

- Suppose you want to deliver the data in CSV format like below:

```
title,image,content
ABC,abc.jpg,Content of ABC
MNO,mno.jpg,Content of MNO
XYZ,xyz.jpg,Content of XYZ

```

- Suppose you have to render the API response in a specific format like below:

```
-begin-
--title=ABC
--image=abc.jpg
--content=Content of ABC
---
--title=MNO
--image=mno.jpg
--content=Content of MNO
---
--title=XYZ
--image=xyz.jpg
--content=Content of XYZ
-end-

```

- Or in any situation where the you have to deliver custom formatted data through the API.

How to use
----------

[](#how-to-use)

One can use this by simply returning the TemplateRenderer object in any action as shown in the below code:

```
public function actionRender(){
    $dataProvider = new ActiveDataProvider(['query' => Model::find()->where($condition)])
    return new \cs\templaterenderer\TemplateRenderer([
        'dataProvider' => $dataProvider,
        'parentView' => '/path/to/parent-view', //path to the parent or wrapper view file
        'itemView' => '/path/to/item-view', //path to the item view file
    ]);
}

```

In the `$parentView` file, a placeholder `{{items}}` in the code will be replaced automatically with the collectively rendered result of `$itemView` for the models in the current page. For example, if the content has to be rendered as shown in the second use case above, the `$parentView` file should be like:

```
-begin-
{{items}}
-end-

```

and the `$itemView` should be like:

```
--title=
--image=
--content=

```

Advantages
----------

[](#advantages)

- The data can be paginated, sorted and filtered just as how it can be done with a GridView or ListView. You can pass the pagination, sort and filter parameters in the URL and the content rendered will be according to the provided parameters.
- Easy to navigate through paginated content by utilizing Pagination Headers in the response.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

2762d ago

Major Versions

0.1 → 1.02018-10-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7246eda428968c042224919053aa295ea2b1e63580d44026e4ced4503bca126?d=identicon)[codespede](/maintainers/codespede)

---

Top Contributors

[![codespede](https://avatars.githubusercontent.com/u/1932084?v=4)](https://github.com/codespede "codespede (17 commits)")

---

Tags

apirestweb serviceyiitemplate-renderer

### Embed Badge

![Health badge](/badges/codespede-yii2-template-renderer/health.svg)

```
[![Health](https://phpackages.com/badges/codespede-yii2-template-renderer/health.svg)](https://phpackages.com/packages/codespede-yii2-template-renderer)
```

###  Alternatives

[ismaeltoe/osms

PHP library wrapper of the Orange SMS API.

4540.0k](/packages/ismaeltoe-osms)[e-moe/guzzle6-bundle

Integrates Guzzle 6 into your Symfony application

11259.2k](/packages/e-moe-guzzle6-bundle)[abantecart/ups-php

UPS PHP SDK based on OAuth

1815.3k](/packages/abantecart-ups-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
