Abstraktní třída Template

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MaJJ
Člen | 18
+
0
-

Zdravíčko,

okolo Nette obcházím už docela dlouho, ale nikdy jsem se do něj pořádně neponořil (já kafi nějak extra zatím neholduju :) ).

Zaujaly mě ale Templates. Zkusil jsem si je tedy zfunkčnit samostatně, bez ostatních Nette fičur podle tohoto návodu …

Jenže mně to (samozřejmě) háže chybu: Cannot instantiate abstract class Nette\Templates\Template a zvýrazňuje mně to řádek s $template = new Template();

Používám Nette 2.0-alpha pro PHP 5.3; PHP mám 5.3.1.
Adresářová struktura je:

mytemplate/
+--libs/
|  +--Nette/
|     +-- klasická struktura Nette adresáře, beze změn jsem to překopíroval
+--temp/
+--index.php
+--sablona.phtml

Obsah index.php:

<?php

use Nette\Debug;
use Nette\Environment;
use Nette\Templates\Template;
use Nette\Templates\LatteFilter;

// načteme framework
require_once dirname(__FILE__) . '/libs/Nette/loader.php';

// volitené, pro šikovnější ladění aplikace
Debug::enable();

// povinné - nastavíme cestu k dočasnému adresáři (nejlépe jako absolutní cestu)
Environment::setVariable('tempDir', dirname(__FILE__) . '/temp');

$template = new Template();
// následující kroky, až do renderování, mohou být uvedeny v libovolném pořadí

// zaregistrujeme filtr Latte, který umožní používat syntax jako {if} ... {/if}, {foreach} ...
$template->registerFilter(new LatteFilter);

// zaregistujeme tzv. helpery, které budou escapovat HTML znaky
$template->registerHelper('escape', 'Nette\Templates\TemplateHelpers::escapeHtml');
$template->registerHelper('escapeJs', 'Nette\Templates\TemplateHelpers::escapeJs');
$template->registerHelper('escapeCss', 'Nette\Templates\TemplateHelpers::escapeCss');

// určíme soubor se šablonou
$template->setFile('sablona.phtml');

// předáme ji parametry
$template->name = 'Jack';
$template->people = array('John', 'Mary', 'Paul');

// a vyrenderujeme
$template->render();

?>

Obsah sablona.phtml:

<h1>Hello {$name}</h1>

<ul>
{foreach $people as $person}
    <li>{$person}</li>
{/foreach}
</ul>

To bych rád věděl, v čem je problém? Je třeba ten návod, podle kterého jsem to dělal, napsaný pro verzi bez těch jmenných prostorů? Co s tím dělat? Díky předem! :)

westrem
Člen | 398
+
0
-

Ak si stahoval Nette ako night build pripadne tu najcerstvejsiu verziu, tak vedz, ze 2 dni dozadu vysiel BC break commit ktory meni nazvoslovie prave pri sablonach, takze ty chces po novom pouzit FileTemplate.

Viac o dovodoch najdes na:

MaJJ
Člen | 18
+
0
-

Přepsal jsem to – a už mi to funguje! Díky moc :)