Tôi muốn tạo một đối số duy nhất có tên là đối số/tùy chọn cho lệnh symfony. Và muốn symfony để phân biệt những 3 lựa chọn:đối số giao diện symfony2
my:command
, có nghĩa là một cái gì đó giống nhưmy:command --arg=null
my:command --arg
, có nghĩamy:command --arg=defalutValue
my:command --arg=someValue
, đó là hoàn toàn rõ ràng.
I.e. Tôi muốn hai chế độ làm việc cho mã theo lệnh đó: mặc định một và không mặc định với đối số bổ sung, và rằng arg nên có giá trị mặc định.
Tôi hiểu rằng tôi có thể tạo 2 arg, nhưng tôi đang tìm giải pháp một-arg-to-rule-them-all.
Có thể thực hiện điều đó bằng các lớp dựng sẵn hoặc tôi có nên tạo các lớp tùy chỉnh không? Nếu giải pháp chỉ có sẵn với các lớp tùy chỉnh, hãy cho tôi biết, bắt đầu từ đâu (tức là "tạo lớp con của ..." hoặc "cài đặt nhóm có tên ..."), vì tôi không quen thuộc với kiến trúc của Symfony2.
Đúng nếu tôi sai, đây là lần đầu tiên tôi sử dụng phương pháp này, nhưng tôi nghĩ rằng để có được kết quả này, bạn phải sử dụng InputOption :: VALUE_OPTIONAL làm đối số thứ ba. – manu
Thật vậy với InputOption :: VALUE_NONE bạn nhận được một ngoại lệ thời gian chạy: Tùy chọn không chấp nhận một giá trị. –
Với 'InputOption :: VALUE_NONE', chúng tôi nhận được ngoại lệ nếu các tùy chọn nhận được giá trị – smarber