SimplePhpView.class.php

Go to the documentation of this file.
00001 <?php
00002 /***************************************************************************
00003  *   Copyright (C) 2006-2008 by Anton E. Lebedevich                        *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Lesser General Public License as        *
00007  *   published by the Free Software Foundation; either version 3 of the    *
00008  *   License, or (at your option) any later version.                       *
00009  *                                                                         *
00010  ***************************************************************************/
00011 
00015     class SimplePhpView extends EmptyView
00016     {
00017         protected $templatePath     = null;
00018         protected $partViewResolver = null;
00019         
00020         public function __construct($templatePath, ViewResolver $partViewResolver)
00021         {
00022             $this->templatePath = $templatePath;
00023             $this->partViewResolver = $partViewResolver;
00024         }
00025         
00029         public function render(/* Model */ $model = null)
00030         {
00031             Assert::isTrue($model === null || $model instanceof Model);
00032             
00033             if ($model)
00034                 extract($model->getList());
00035             
00036             $partViewer = new PartViewer($this->partViewResolver, $model);
00037             
00038             $this->preRender();
00039             
00040             include $this->templatePath;
00041             
00042             $this->postRender();
00043             
00044             return $this;
00045         }
00046         
00047         public function toString($model = null)
00048         {
00049             ob_start();
00050             $this->render($model);
00051             return ob_get_clean();
00052         }
00053         
00057         protected function preRender()
00058         {
00059             return $this;
00060         }
00061         
00065         protected function postRender()
00066         {
00067             return $this;
00068         }
00069     }
00070 ?>