New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Allow spinal case for console command line options #4293
Comments
There's no technical problem. My only concern is if this will cause confusion. Which format should be used in |
In options I'd say the user define the format he wants to be shown in the help message. (./yiic help ) But then --my-option should just be an alias of --myOption (you can define this as a convention for Yii command line apps) |
I'm not sure it's a good idea overall to define options differently than these are actually used. |
It would be just a matter of mapping them since the common format of command line parameters is with the dash but it is not possible to name a class property in the same way. But I was suggesting to have them as an alias for backward compatibility but we can ignore this if it makes it confusing. |
I think it is confusing. |
Ok, but what about having it in this way:
In this way it does not break backward compatibility of the framework and it shouldn't be confusing. Of course then if the user changes it, it will break the BC of his app, but then that is up to him. |
I don't have strong opinion about this one. @qiangxue can you help with decision? |
I think we should leave it as is. As said previously, the biggest concern is that this may cause confusion. Without documentation, this will become a hidden feature; but if documented, this will bring confusion. |
Really old ticket, but what an awful decision to reject the idea and close it. There is not a single *nix command in existence that uses options with camel-cased names. :( |
Console command line options now are defined in the options() method of the Controller and mapped to the corresponding properties.
We could have spinal case options mapped to camel case properties in the same way controller actions are handled.
So for example you would have --my-option=123 that will be stored in $this->myOption allowing for more command line friendly syntax.
In this scenario writing --myOption=123 should still work (also for backward compatibility) but when, for example, showing the help message, the values returned by the options() method should be used (if I'm right, it is already this way).
What do you think?
The text was updated successfully, but these errors were encountered: