1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68:
<?php
namespace BaseModule;
use Nette\Application\UI\Presenter;
abstract class BasePresenter extends Presenter {
public function __construct(\Nette\DI\Container $context = NULL) {
parent::__construct($context);
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
session_write_close();
$this->postConstruct($context);
}
private function postConstruct(\Nette\DI\Container $context) {
foreach ($this->getReflection()->getProperties() as $property) {
$annotations = $property->getAnnotations();
$var = \Nette\Utils\Arrays::get($annotations, 'var', NULL);
$inject = \Nette\Utils\Arrays::get($annotations, 'Inject', FALSE);
if ($inject && count($var) == 1) {
$varArr = explode(' ', $var[0]);
$this->{$property->name} = $context->getByType($varArr[0]);
}
}
}
public function startup() {
parent::startup();
$this->template->docUrl = $this->context->parameters['docUrl'];
}
public function formatLayoutTemplateFiles() {
return array($this->context->parameters['appDir'] . '/BaseModule/templates/@layout.latte');
}
}