içinden erişim parametresi Yeni bir komut satırı ekliyorum. Sınıfımdaki bir parametrenin (parameters.yml) değerine erişmek istiyorum.Komut Sınıfı
Bu sınıfı, parametreye erişim için bir hizmet olarak eklemem gerektiğini okudum. Yani
//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
o normalde argüman içinde olduğu söylenir sınıfın kurucusu ancak bunu yaparsam:
public function __construct($less_compiler) {
$this->less_compiler = $less_compiler;
}
İlk argümanın eksik olduğunu belirten bir uyarı aldım. Komut anne sınıfında orada yapıcı sonra eşsiz argüman olarak bir isimdir ama ben yazmak halde:
public function __construct($name, $less_compiler) {
}
O şey değişmez ..
Diğer olasılık dersime iç hizmet çağırmaktır :
$service = $this->getContainer()->get('less_css_compiler');
Ama bu tartışmayı nasıl alabilirim?
$this->getContainer()->getParameter('parameter_name');
veya
Sen ayrı hizmet sınıfı oluşturmak gerekir komut ContainerAwareCommand uzatmak izin size
Gerçekten sadece parameters.yml parametresine erişmek için bir hizmet oluşturmak gerçekten temiz ... belki başka bir yolu var ama bir servis kullanıyor? – mlwacosmos
tabiki evet, $ this-> getContainer() -> getParameter ('parametre adı'); – Venu