1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
namespace Library;
class Page extends ApplicationComponent
{
protected $contentFile;
protected $vars = array();
public function addVar($var, $value)
{
if (!is_string($var) || is_numeric($var) || empty($var))
{
throw new \InvalidArgumentException('Le nom de la variable doit être une chaine de caractère non nulle');
}
$this->vars[$var] = $value;
}
public function getGeneratedPage()
{
if (!file_exists($this->contentFile))
{
throw new \RuntimeException('La vue spécifiée n\'existe pas');
throw new \InvalidArgumentException('La vue spécifiée n\'existe pas');
}
$user = $this->app->user();
extract($this->vars);
ob_start();
require $this->contentFile;
$content = ob_get_clean();
ob_start();
require dirname(__FILE__).'/../Applications/'.$this->app->name().'/Templates/layout.php';
return ob_get_clean();
}
public function setContentFile($contentFile)
{
if (!is_string($contentFile) || empty($contentFile))
{
throw new \InvalidArgumentException('La vue spécifiée est invalide');
}
$this->contentFile = $contentFile;
}
} |