Rain TPL Yii View Renderer

Rain TPL Yii View Renderer

The easy and fast template engine for PHP. Rain.TPL makes application easier to create & enables designers/developers to work better together.

Project Page



Speed Test

Github Project Page

Yii Extension Github Project Page


  • PHP 5
  • Yii 1.1.10 (Tested on 1.1.10 but should work on older versions as well)


  1. Download or Clone the files
  2. Extract into the extensions folder
  3. Edit the application config file and add the following array under the ‘components’ array:



The available options you can set for this view renderer are:

// File extension used for views
‘fileExtension’ => ‘.tpl’,
// is the template directory
‘tpl_dir’ => null,
// where it save compiled templates and cache
‘cache_dir’ => null,
// the absolute base url of your application (eg. http://www.raintpl.com)
‘base_url’ => null,
// enable/disable the path replace
‘path_replace’ => false,
// configure what to replace
‘path_replace_list’ => array(),
// configure what command are not allowed
‘black_list’ => array(),
// enable/disable the control if template was modified by the last compiling
‘check_template_update’ => true,
// enable/disable the use of php tags in your template
‘php_enabled’ => false,
// Use the latest beta version for rain tpl 3
‘useRainBeta’ => false,
// Will not cache templates
‘debug’ => false,
// Auto escape variables
‘auto_escape’ => false,


To render a view you would call the render method the same way

$this->render(‘someview’, $params);

Template Syntax Examples

<?php echo $var; ?> {$var}
<?php echo CONSTANT; ?>
<?php $num + 10; ?> {$num + 10}
<?php echo $website[‘name’]; ?> {$website.name}
<?php echo $GLOBALS[‘name’]; ?> {$GLOBALS.name}
<?php if($year > 18) {echo ‘major’;}?> {if=”$year > 18”}major{/if}
<?php if($year > 18) {echo ‘major’;} else {echo ‘not major’;}?> {if=”$year > 18”}major{else}not major{/if}
<?php if() {echo ‘Hello’ . $name} else{ echo ‘Not Logged’; } ?> {if=”isLogged()”}Hello {$name}{else}Not Logged{/if}
<?php echo $is_logged ? ‘Hellow’ . $name : ‘Not logged’; ?> {$is_logged? ‘Hello $name’:’Not logged’}
<?php foreach($user_list as $key => $value) {echo $key . ‘-‘ . $value[‘name’] . ‘
{$key} - {$value.name}

<?php include ‘footer’; ?> {include=”footer”}
<?php echo cut_html($news, 0, 12); ?> {$news|cut_html:0,12}
<?php pagination( $selected_page, NEWS_PER_PAGE, URL ); ?> {function=”pagination( $selected_page, NEWS_PER_PAGE, URL )”}
<?php echo substr($string,0,5); ?> {function=”substr($string,0,5)”}
<?php / comment / ?> { comment }

For more info see Documentation


Vincent Gabriel http://vadimg.com

Share Comments