Tôi đang thêm một dòng lệnh mới. Tôi muốn có quyền truy cập vào giá trị của tham số (parameters.yml) trong Lớp của tôi.Tham số truy cập từ Command Class
Tôi đọc rằng tôi nên thêm lớp này làm dịch vụ để có quyền truy cập vào tham số. Vì vậy,
//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
người ta nói rằng normaly lập luận là trong nhà xây dựng của lớp học nhưng nếu tôi làm điều này:
public function __construct($less_compiler) {
$this->less_compiler = $less_compiler;
}
Tôi có cảnh báo cho biết đối số đầu tiên bị thiếu. Trong lớp mẹ chỉ huy có một tên như là đối số sau đó độc đáo của các nhà xây dựng nhưng mặc dù tôi viết:
public function __construct($name, $less_compiler) {
}
Nó không thay đổi bất cứ điều gì ..
Khả năng khác là để gọi cho dịch vụ bên trong lớp học của tôi :
$service = $this->getContainer()->get('less_css_compiler');
Nhưng làm thế nào để tôi có được đối số?
Cảm ơn bạn
là nó thực sự sạch sẽ để tạo ra một dịch vụ chỉ để có quyền truy cập vào một tham số trong parameters.yml ... có thể có một cách khác sau đó nhưng bằng cách sử dụng một dịch vụ? – mlwacosmos
tất nhiên là có, $ this-> getContainer() -> getParameter ('tên tham số'); – Venu