Ako injektnut property aby som nemusel pisat spagetti code?
Notice: This thread is very old.
- steelbull
- Member | 240
Ako inejktnut priamo property params, aby som v presenteri nemusel pisat $this->config->params ale len $this->config?
Dakujem.
class ConfigService extends \Nette\Object {
private $params;
private $context;
public function __construct($params, \Nette\Database\Context $context) {
$this->context = $context;
$config = (new \App\Model\ConfigurationModel($this->context))->getConfiguration();
$this->params = array_merge($params, $config);
}
public function __invoke() {
return $this->params;
}
}
- romiix.org
- Member | 343
services:
nejakyPresenter:
class: App\Presenters\NejakyPresenter
setup:
- $param(value)
- David Kudera
- Member | 455
Nebo bez nutnosti uvádět název
services:
-
class: App\Presenters\NejakyPresenter
setup:
- $param(value)
Další možností, často mnohem lepší, jak jsem zjistil, je nepoužívat config parametry v presenteru vůbec. Všechno mám pěkně rozdělené na služby, které mají přesně dané zodpovědnosti a také jim určené parametry. No a presentery jsou krásně čisté, jen s kódy pro vytvoření komponent přes továrničky a sem tam nějaké to načtení dat podle parametrů. A navíc se to i jednoduše testuje ;-)