Trong configure()
chức năng, tôi đã cố gắng để có được container dịch vụBắt Dịch vụ container tại Symfony 2 Bảng điều khiển lệnh cho "getKernel() trên một tổ chức phi vật thể"
class SetQuotaCommand extends ContainerAwareCommand {
protected function configure() {
parent::configure();
die(get_class($this->getContainer()));
PHP Fatal error: Call to a member function getKernel() on a non-object in ...\Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand.php on line 37
Tôi có cần phải làm gì đó khác không?
CẬP NHẬT
tôi nhận thấy rằng nó hoạt động nếu tôi gọi getContainer
trong execute()
. Nhưng tôi tự hỏi liệu có thể có getContainer()
trong số configure()
không. Tôi muốn lấy thông số cấu hình để sử dụng trong đối số giá trị mặc định addOption
.
Nếu không tôi có thể sử dụng
$param1 = $input->getOption('param1') ? : $container->getParameter('param1');
nào xuất hiện của abit hơn un-trực quan?
Tôi nghĩ rằng vấn đề là cách bạn đang thực hiện nó. Thêm một tùy chọn dựa trên giá trị cấu hình không phải là một giải pháp rất tốt. Bạn đang cố gắng đạt được điều gì? –
Tôi muốn đặt các giá trị mặc định trong parameters.ini. Có thể truy cập một số thứ thông qua ứng dụng và bảng điều khiển. Mặc dù vào suy nghĩ thứ hai, có lẽ tôi có thể lấy đi với một mặc định hardcoded ... hmm ... whats sai với cách của tôi làm điều đó mặc dù? –
Tôi xin lỗi, tôi hiểu lầm những gì bạn đang cố gắng đạt được. Không có gì sai với cách làm của bạn. Tôi nghĩ rằng giải pháp duy nhất có thể là đặt giá trị mặc định thành '' 'false''' trong' '' configure() '' 'và sau đó đặt nó theo cách thủ công trong' '' execute() '' '. –