Tip: Session do debug panelu

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

Tip: Pokud chcete videt, co mate v session, tak se vam treba bude hodit tento panel. Me obcas docela pomuze.

/**
 * Dumps sessions to DebugBar
 *
 * @author Jan Dolecek <juzna.cz@gmail.com>
 */
class SessionPanel implements \Nette\Diagnostics\IBarPanel {
	private $sess;

	public function __construct(\Nette\Http\Session $sess) {
		$this->sess = $sess;
	}

	function getTab() {
		return $this->sess->getIterator()->count() . ' sessions';
	}

	function getPanel() {
		$ret = array();
		foreach($this->sess->getIterator() as $ns) $ret[$ns] = iterator_to_array($this->sess->getSection($ns));
		return \Nette\Diagnostics\Debugger::dump($ret, true);
	}
}

Staci zapnout v bootstrapu:

\Nette\Diagnostics\Debugger::$bar->addPanel(new SessionPanel($context->session));
Tomáš Votruba
Moderator | 1114
+
0
-

Rychlé, jednoduché, fční. Díky.

Felix
Nette Core | 1196
+
0
-
return \Nette\Diagnostics\Helpers::clickableDump($ret);

Much better ^^ :)

n.u.r.v.
Člen | 485
+
0
-

Ahoj, dotaz – asi něco dělám blbě:

  1. dám class SessionPanel.php do app/model
  2. do bootstrap.php dám
\Nette\Diagnostics\Debugger::$bar->addPanel(new SessionPanel($context->session));

A hodí mi to chybu:

„Undefined variable: context“
v bootstrapu na řádku:

\Nette\Diagnostics\Debugger::$bar->addPanel(new SessionPanel($context->session));

Co s tím? Děkuji…

Šaman
Člen | 2659
+
0
-

A dáváš to v bootstrapu až po vytvoření contextu? A předpokládám, že to je dělané pro Nette 2.x, předtím byl bootstrap trochu jiný.

David Matějka
Moderator | 6445
+
0
-

a v sandboxu, quickstartu atd. neni $context, ale $container;
takze tamten radek dej za $container = $configurator->createContainer(); a tam potom pouzij misto $context $container

n.u.r.v.
Člen | 485
+
0
-

Aha, díky – už to funguje – pomohlo přejmenování na container…