Latte samostatně – použití {status 500} vyhodí Fatal error
- RadaR
- Člen | 46
Používám Latte samostatně a drtivá většina maker je bez problémů.
Ale když chci použít
{status xxx}, tak mi to vyhodí chybu: „Fatal error: Call to a member function
setCode() on a non-object…“.
Ve vygenerované cache se volá toto: $netteHttpResponse->setCode(500) ;
Dle všeho objekt $netteHttpResponse vůbec nevznikne. Latte inicializuji takto:
<?php
use Nette\Templating\FileTemplate;
$template = new FileTemplate();
$template->setCacheStorage(new Nette\Caching\Storages\PhpFileStorage(ROOT_PATH. 'cache/nette/'));
$template->registerHelperLoader('Nette\Templating\Helpers::loader');
$template->onPrepareFilters[] = function($template) {
$latte = new Nette\Latte\Engine;
$template->registerFilter($latte);
$set = new Nette\Latte\Macros\MacroSet($latte->compiler);
$set->addMacro(
'abc',
'$args = %node.array;echo (trim($args[1]) ? $args[1] : $args[0]);'
);
};
?>
Poradí prosím někdo, co tomu ještě chybí ke štěstí?
Editoval RadaR (30. 7. 2014 15:50)
- David Matějka
- Moderator | 6445
v 2.2 jiz tohle makro neni zavisle na Nette\Application, muzes se tedy inspirovat a defaultni makro prekryt: https://api.nette.org/…ros.php.html#…
- RadaR
- Člen | 46
Díky, nenapadlo mne podívat se tomu více „pod kapotu“.
Btw: Nebylo by dobré, aby někdo odstranil nebo aspoň zmínil tuto skutečnost v dokumentaci? Viz https://latte.nette.org/cs/tags#…
Editoval RadaR (31. 7. 2014 10:19)
- RadaR
- Člen | 46
@JanTvrdík: OK, zkusil jsem to, ale po přehození z 2.1 na Nette na 2.2.2 dostávám chybovou hlášku při vykreslení jakékoliv stránky:
Deprecated: Magic getters are deprecated. Use getCompiler() method instead. in C:\xampp\htdocs\project3\Nette\deprecated\Latte\Engine.php on line 57
ze které vůbec nejsem moudrý. Asi je nutné Latte jinak volat? Viz výše, můj kód.
A dále jsem si všiml jisté odlišnosti ukládání a pojmenovávání souborů přeložených šablon do nativního php kódu. S Nette 2.1 se v adresáři /cache/nette automaticky vytvořil podadresář /_Nette.FileTemplate a v něm byly přeložené šablony, nyní tento adresář nevznikne a soubory již v názvu souboru obsahují něco jako úplnou cestu… Je v tom poněkud větší chaos, nicméně samozřejmě není klíčové – pokud bude vše fungovat, jak má.
- RadaR
- Člen | 46
@DavidKudera: Aha. Rozumím. Díky, ale v tom případě se točím v bludném kruhu, ze kterého aktuálně „není úniku“. Mám hotovej celkem velkej projekt v Nette 2.1 a již dříve jsem chtěl zkusit nové Latte – viz https://forum.nette.org/…et-not-found
Sice jsem dostal užitečné rady, jenže nedostanu prostředky k tomu, abych si s tím měl čas hrát a vše odladil a předělal na verzi Nette 2.2×. No, třeba někdy…