Nedostatek paměti po použití komponenty

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

Ahoj všichni.

Začal jsem psát novou věc na sandboxu Nette 2.3 beta 2.

Chtěl jsem vytvořit komponentu klasicky
Calendar.php

<?php
	namespace Kejzlar\Components;

	class Calendar extends \Nette\Application\UI\Control
	{
		function render()
		{
			$this->template->setFile(__DIR__ . "/Calendar.latte");
			$this->render();
		}
	}

Calendar.latte

Zde je jen tento text, abych viděl, že komponenta funguje

BasePresenter.php

function createComponentCalendar()
{
    $control = new \Kejzlar\Components\Calendar();

    return $control;
}

V šabloně, kde se nepoužívá vůbec nic jiného použiju

{control calendar}

Po spuštění tohoto triviálního kódu se mi místo komponenty vypíše PHP chyba
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /home/www/xxxxx.com/www/xxxxx.com/vendor/nette/utils/src/Utils/ObjectMixin.php on line 126

Ani to není chyba přes Tracy, ale klasický PHP výpis.

Vůbec nevím, proč to může dělat. Něco jsem přehlédl nebo se komponenty dělají ve 2.3 nějak jinak?

Díky za pomoc.

Editoval kejlicz (13. 2. 2015 15:14)

enumag
Člen | 2118
+
+3
-

To $this->render(); ti udělá nekonečnou rekurzi, nejspíše chceš $this->template->render();.

tk
Člen | 6
+
+3
-
$this->render();

se zarekurzí donekonečna, asi by tam spíš mělo být

$this->template->render();
kejlicz
Člen | 201
+
0
-

Já věděl, že jsem něco přehlídnul. Díky moc.