[development] low hanging fruit for Drupal 6: variable defaults

John Vandervort jvandervort at gmail.com
Thu May 3 14:04:31 UTC 2007


Any comments regarding default variable namespaces?
Right now I have a lot of long variable names just to avoid clashes with my
own stuff.

variable_get('my_module_name_my_variable_name_var', MY_DEFAULT_VALUE);

I was wondering if we should have variables within their own module
namespaces.
Sort of like local module variables (stored in the db of course) that would
be guarrenteed
unique???

Also, a side benefit of namespaces might be something like this:

$vars = variable_get_array('my_module_name');

which could load all the variables for a module with one db call.



On 5/3/07, Earnie Boyd <earnie at users.sourceforge.net> wrote:
>
> Quoting Gabor Hojtsy <gabor at hojtsy.hu>:
>
> > Hi,
> >
> > To be able to translate variables to multiple languages in Drupal
> > nicely, we would need a small conceptual change, which would benefit
> > all of the Drupal developers, so I am posting the call here in hopes
> > we have someone or a small group to pick this task up.
> >
> > **We need a central place to define variable defaults**
> >
>
> At the top of the module:
>
> <?php
> define('MY_DEFAULT_VALUE', t('my_default_value'));
> ?>
>
> > Simple! Now whenever you need a variable, you do
> >
> >   variable_get('my_fine_var', 'my_default_value');
> >
>
> Then in the code:
>
> <?php
> variable_get ('my_find_var', MY_DEFAULT_VALUE);
> ?>
>
> > The problem with this is that you need to repeat this multiple times,
> > and of course there is a chance you need to modify it later on, so
> > you need to find all places a variable is used. Not good. Remember
> > the changes from bluemarine to garland, we have been fixing
> > theme_default errors for days, finding out places where the variable
> > was used...
> >
>
> I then only have one place to edit.
>
> > So we need a central place to define variable defaults. For Drupal 6
> > this is enough now:
> >
>
> The central place is at the top of the module with a define statement.
>
> >   hook_settings() {
> >     return array(
> >       'my_fine_var' => 'my_default_value',
> >     );
> >   }
> >
> > Have fun with naming it hook_settings(), as far as I see, it is an
> > appropriate name, and not taken at the moment :) So Drupal can do a
> > module_invoke_all() on hook_settings() and collect defaults to all
> > variables from the modules defining them. It gets easier and shorter
> > to use variables:
> >
> >   variable_get('my_fine_var');
> >
>
> 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.
>
> Earnie
>



-- 
-> JV
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20070503/7d811e5c/attachment.htm 


More information about the development mailing list