[development] low hanging fruit for Drupal 6: variable defaults
Earnie Boyd
earnie at users.sourceforge.net
Thu May 3 19:46:46 UTC 2007
Quoting Gabor Hojtsy <gabor at hojtsy.hu>:
> Earnie Boyd wrote:
>>> **We need a central place to define variable defaults**
>>
>> At the top of the module:
>>
>> <?php
>> define('MY_DEFAULT_VALUE', t('my_default_value'));
>> ?>
>>
>> Then in the code:
>>
>> <?php
>> variable_get ('my_find_var', MY_DEFAULT_VALUE);
>> ?>
>>
>> I then only have one place to edit.
>> The central place is at the top of the module with a define statement.
>>
>>> hook_settings() {
>>> return array(
>>> 'my_fine_var' => 'my_default_value',
>>> );
>>> }
>>
>> variable_get('my_fine_var', MY_DEFAULT_VALUE) is simple enough. I
>> don't understand why we would need to add this complication and
>> overhead.
>
> Ernie, I am fine with this solution too for Drupal itself.
>
> BUT locale module will require a list of variables and their default
> values defined somewhere, so we will need to do that ourselfs in this
> case. It seemed to be odd to do this as part of the hook_locale()
> introduced today, but if hook_settings() seems to be
> overcomplication, then we need to go that way. I thought that if
>
> - we can save extra typing and value passing on variable_get calls
> - we have a hook to reuse when we need a list of variables
> to present for localization
>
> adds pluses over just using constants.
>
> Sure, only using constants for default variable values could be make
> variable usage better, but I think a hook do more just by being a
> central place and not a set of unrelated constants.
>
What if you used get_defined_constants() to return an associative array
of constant names? You now have a key to translate the default with.
We could go further and add some namespace rules to the naming of
constants like DRUPAL__ for Drupal core constants and MY_MODULE__ for
module specific namespace. How does this sound?
Earnie
More information about the development
mailing list