null, "tpl_dir" => "templates/test/", "cache_dir" => "cache/", "debug" => true // set to false to improve the speed ); Tpl::configure( $config ); // Add PathReplace plugin Tpl::registerPlugin( new Tpl\Plugin\PathReplace() ); // set variables $var = array( "variable" => "Hello World!", "version" => "3.0 Alpha", "menu" => array( array("name" => "Home", "link" => "index.php", "selected" => true ), array("name" => "FAQ", "link" => "index.php/FAQ/", "selected" => null ), array("name" => "Documentation", "link" => "index.php/doc/", "selected" => null ) ), "week" => array( "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ), "user" => (object) array("name"=>"Rain", "citizen" => "Earth", "race" => "Human" ), "numbers" => array( 3, 2, 1 ), "bad_text" => "Hey this is a malicious XSS ", "table" => array( array( "Apple", "1996" ), array( "PC", "1997" ) ), "title" => "Rain TPL 3 - Easy and Fast template engine", "copyright" => "Copyright 2006 - 2012 Rain TPL
Project By Rain Team", ); // add a tag Tpl::registerTag( "({@.*?@})", // preg split "{@(.*?)@}", // preg match function( $params ){ // function called by the tag $value = $params[1][0]; return "Translate: $value"; } ); // add a tag Tpl::registerTag( "({%.*?%})", // preg split "{%(.*?)(?:\|(.*?))%}", // preg match function( $params ){ // function called by the tag $value = $params[1][0]; $value2 = $params[2][0]; return "Translate: $value in $value2"; } ); $string = file_get_contents( "templates/test/test.html"); class Test{ static public function method( $variable ){ echo "Hi I am a static method, and this is the parameter passed to me: $variable!"; } } // draw $tpl = new Tpl; $tpl->assign( $var ); echo $tpl->drawString( $string ); // -- end //------------------------------------------------------------- // // BENCHMARK/DEBUG FUNCTIONS // //------------------------------------------------------------- echo "
---------
"; echo memoryUsage(); echo "
"; echo timer(); /** * Useful for debug, print the variable $mixed and die */ function dump( $mixed, $exit = 1 ){ echo "
dump \n---------------------- \n\n" . print_r( $mixed, true ) . "\n----------------------
";
    if( $exit ) exit;
}



/**
 * Save the memory used at this point
 */
function memoryUsageStart( $memName = "execution_time" ){
    return $GLOBALS['memoryCounter'][$memName] = memory_get_usage();
}



/**
 * Get the memory used
 */
function memoryUsage( $memName = "execution_time", $byteFormat = true ){
    $totMem = memory_get_usage() - $GLOBALS['memoryCounter'][ $memName ];
    return $byteFormat ? byteFormat($totMem) : $totMem;
}


//-------------------------------------------------------------
//
//					 TIME FUNCTIONS
//
//-------------------------------------------------------------

/**
 * Start the timer
 */
function timerStart( $timeName = "execution_time" ){
    $stimer = explode( ' ', microtime( ) );
    $GLOBALS['timeCounter'][$timeName] = $stimer[ 1 ] + $stimer[ 0 ];
}

/**
 * Get the time passed
 */
function timer( $timeName = "execution_time", $precision = 10 ){
    $etimer = explode( ' ', microtime( ) );
    $timeElapsed = $etimer[ 1 ] + $etimer[ 0 ] - $GLOBALS['timeCounter'][ $timeName ];
    return substr( $timeElapsed, 0, $precision );
}


/**
 * Convert byte to more readable format, like "1 KB" instead of "1024".
 * cut_zero, remove the 0 after comma ex:  10,00 => 10	  14,30 => 14,3
 */
function byteFormat( $size ){
    if( $size > 0 ){
        $unim = array("B","KB","MB","GB","TB","PB");
        for( $i=0; $size >= 1024; $i++ )
            $size = $size / 1024;
        return number_format($size,$i?2:0, ',', '.' )." ".$unim[$i];
    }
}

// end