PHP Classes

YII2 PHP Template Render Class: Render templates in any format with YII2 framework

Recommend this page to a friend!
  Info   View files Documentation   View files View files (5)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 57 This week: 1All time: 10,511 This week: 560Up
Version License PHP version Categories
yii2-template-render 1.0.1MIT/X Consortium ...5.4PHP 5, Templates
Description 

Author

This package can be used to render templates in any format with YII2 framework.

It can return a template renderer object that takes as parameters a data provider object to generate the data to be displayed, as well the paths of a parent view and a item view.

The template renderer object can be returned to the action view call so it can be integrated in the current request output.

Innovation Award
PHP Programming Innovation award nominee
November 2018
Number 9
Templates are files that are very useful to separate the way pages are rendered from the code that generates the output of those pages.

This package provides means to render the output of pages from templates that support different formats for applications using the YII2 framework.

Manuel Lemos
Picture of Mahesh S
  Performance   Level  
Name: Mahesh S <contact>
Classes: 3 packages by
Country: India India
Age: 34
All time rank: 3936272 in India India
Week rank: 106 Up8 in India India Up
Innovation award
Innovation award
Nominee: 2x

Documentation

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

The preferred way to install this extension is through composer.

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

  • 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

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=<?=$model->title?>
--image=<?=$model->image?>
--content=<?=$model->content?>

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.

  Files folder image Files  
File Role Description
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Read me
Plain text file Serializer.php Class Class source
Plain text file TemplateRenderer.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:57
This week:1
All time:10,511
This week:560Up