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:
<?php
namespace BaseModule\Services;
class BaseService extends \Nette\Object {
protected $container;
public function __construct(\Nette\DI\Container $container) {
$this->container = $container;
$this->postConstruct($container);
}
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]);
}
}
}
}