Feature
avatar richard67
richard67
10 Jan 2024

Is your feature request related to a problem? Please describe.

Currently the CLI command config:set changes all integer values to string values when saving changes, regardless whether these values were changed or not.

Values which seem to be boolean because they have content "true" or "false" are saved as booleans, but that is not really safe.

See the comment here: #42618 (comment) .

Describe the solution you'd like

The CLI should save configuration in the same way as the administrator does, so the data types of the particular values are determined by the administrator/components/com_config/forms/application.xml file or by the existing configuration.php file.

The should not be a data type conversion based on the content of a value like it is currently done for boolean here https://github.com/joomla/joomla-cms/blob/5.0-dev/libraries/src/Console/SetConfigurationCommand.php#L445-L450 .

Additional context

See also issue #42612 and PR #42618 .

avatar richard67 richard67 - open - 10 Jan 2024
avatar joomla-cms-bot joomla-cms-bot - change - 10 Jan 2024
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 10 Jan 2024
avatar richard67 richard67 - change - 10 Jan 2024
Labels Added: Feature
Removed: No Code Attached Yet
avatar richard67 richard67 - unlabeled - 10 Jan 2024
avatar richard67 richard67 - labeled - 10 Jan 2024
avatar brianteeman
brianteeman - comment - 22 Aug 2025

Maybe I am testing this wrong but when I tried to use config:set to change the smtpport ONLY that field was changed from an integer to string. No other values were changed. Changing massmailoff from true to false didnt change to a boolean

avatar richard67
richard67 - comment - 22 Aug 2025
avatar brianteeman
brianteeman - comment - 22 Aug 2025

As I said maybe my test is wrong

Image Image
avatar richard67
richard67 - comment - 22 Aug 2025

@brianteeman Yes, the issue is vice versa. If you save a string value which has value 'true' it might be saved as boolean, and that would be wrong. See my comment here: #42618 (comment)

That means: Test if you can save e.g. $smtphost with a string value 'true'. IF the result is saved as string: No issue. If it is saved as boolean: Issue.

avatar brianteeman
brianteeman - comment - 22 Aug 2025

now i am even more confused.

changes all integer values to string values when saving changes, regardless whether these values were changed or not.

The only values that were changed were the values I instructed to be changed and yes the integers were changed to strings which i agree is wrong but the true/false did not change data type

Add a Comment

Login with GitHub to post a comment