Dodaję nową linię poleceń. Chciałbym mieć dostęp do wartości parametru (parameters.yml) w mojej klasie.Parametr dostępu z klasy poleceń
Przeczytałem, że powinienem dodać tę klasę jako usługę, aby mieć dostęp do parametru. Więc
//config.yml
imports:
- { resource: services.yml }
//services.yml
services:
less_css_compiler:
class: MyVendor\MyBundle\Command\ThemeCommand
arguments: [%less_compiler%]
//parameters.yml
parameters:
less_compiler: WinLess.exe
mówi się, że normalnie argument jest w konstruktor klasy, ale jeśli to zrobię:
public function __construct($less_compiler) {
$this->less_compiler = $less_compiler;
}
Mam ostrzeżenie, że brakuje pierwszego argumentu. W klasie macierzystej polecenia jest nazwa unikalnej jak wtedy argument konstruktora, ale mimo to piszę:
public function __construct($name, $less_compiler) {
}
To niczego nie zmienia ..
Inna możliwość jest wywołanie usługi w mojej klasie :
$service = $this->getContainer()->get('less_css_compiler');
Ale jak mogę uzyskać argument?
Dziękuję
Czy to naprawdę czyste, aby utworzyć usługę, aby uzyskać dostęp do parametru w parameters.yml ... może jest inny sposób niż korzystanie z usługi? – mlwacosmos
oczywiście tak, $ this-> getContainer() -> getParameter ('nazwa parametru'); – Venu