kód před namespace v cache

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

Dobrý večer,
převzal jsem projekt v Nette 2.1.9 (PHP 5.4.12) ale při otevření mám error „Namespace declaration statement has to be the very first statement in the script“. Následuje ukázka souboru cache\_Nette.FileTemplate\_Product.ListControl.php-2444c8e635e360f413040bd81e3f3ab2.php kde je opravdu před namespace vložen mj. kód:

<?php
// prolog Nette\Latte\Macros\CoreMacros
list($_l, $_g) = Nette\Latte\Macros\CoreMacros::initRuntime($template, 'x1aj6wbmxq')
;
// prolog Nette\Latte\Macros\UIMacros

// snippets support
if (!empty($_control->snippetMode)) {
	return Nette\Latte\Macros\UIMacros::renderSnippets($_control, $_l, get_defined_vars());
}

//
// main template
//
 namespace foo\Controls\Product;
?>

Ve zdrojovém souboru LiscControl.php samozřejmě nic takového není. Po smazání cache se opět vygeneruje stejný výsledek. Poradíte v čem je problém?

CZechBoY
Člen | 3608
+
0
-

To je sablona ListControl. Zkus mrknout tam.

honzazl
Člen | 3
+
0
-

V šabloně nic zvláštního není a stejné chování je i pokud ji úplně vyprázdním. Všiml jsem si že podobný kód nette přidává k šablonám, ale ListControl.php šablona není.

David Grudl
Nette Core | 8239
+
0
-

Místo šablony, tj. souboru s příponou .latte, vykresluješ zdroják, tj. ListControl.php.

honzazl
Člen | 3
+
0
-

nj, autor do metody render() uvedl $this->doRender(__METHOD__) na místo $template->render().