Login   Register  
PHP Classes
elePHPant
Icontem

File: index.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Patrick J. Mizer  >  SimpleTPL  >  index.php  >  Download  
File: index.php
Role: Example script
Content type: text/plain
Description: Example usage
Class: SimpleTPL
Template engine based on PHP execution
Author: By
Last change:
Date: 2006-05-28 18:00
Size: 1,999 bytes
 

Contents

Class file image Download
<?php
require_once('SimpleTPL.class.php');

// Simple example
$tpl =& new SimpleTPL();

$name 'Patrick J. Mizer';

$attributes = array (    'University' => 'University of Texas at Austin',
                        
'Major' => 'Computer Science',
                        
'GPA' => '4.0 (it\'s my example, I can embellish)');


$tpl->assignValue('name'$name);
$tpl->assignValue('attributes'$attributes);

$tpl->renderTemplate('header.tpl.php');
$tpl->renderTemplate('demo.tpl.php');
$tpl->renderTemplate('footer.tpl.php');

$tpl->cleanUp();

// For a more practical example imagine we have a MVC setup
// with a controller class defined something like...

class someController

    function 
serveModule($mod){
        
        
$tpl2 =& new SimpleTPL();
        
        if(
class_exists($mod)){
            
$view =& new $mod();
    
            
$tpl2->renderTemplate('header.tpl.php');
            
$view->processRequest();
            
$tpl2->renderTemplate('footer.tpl.php');
    
            
$tpl2->cleanUp();
            
$view->cleanUp();
        }else{
            echo 
'Class: ' $mod ' DNE';
        }
    }
}

// ... and a view class defined like...

class SomeView extends SimpleTPL
{
    function 
processRequest()
    {
        if(!isset(
$_REQUEST['action'])){
            
$this->drawStudentInformation();
        }
        
    }
    
    function 
drawStudentInformation()
    {
        
$name 'Patrick J. Mizer';

        
$attributes = array (    'University' => 'University of Texas at Austin',
                                
'Major' => 'Computer Science',
                                
'GPA' => '4.0 (it\'s my example, I can embellish)');
        
        
$this->assignValue('name'$name);
        
$this->assignValue('attributes'$attributes);
        
        
$this->renderTemplate('demo.tpl.php');
    }
}

// The client code would be something like...

$cntrlr =& new someController();
$cntrlr->serveModule('someView');

// ... and voila.

// I think this example illustrates how using templates (no matter how simple) 
// really cleans up your code via encapsulation. Coupling this paradigm with 
// the use of DAO's makes for very managable, portable, extendable PHP code.

?>