Another interesting thing I just noticed is that there is some strange
behavior in how one config file overrides another.  This is most
easily explained with an example.  Let's say I've made a plugin that
makes use of a parameter 'max_length'.  Imagine I'm loading the
configuration with the prefix of 'my_'.

So, if I have the following in a configuration file in the plugin:

all:
  max_length: 5
  min_length: 3

Then sfConfig::get('my_min_length') returns 3 as expected.

Now let's say that I make a copy of that configuration file and put it
in the application.  But I modify it slightly.

all:
  max_length: 6
 #min_length: 3

This works as expected.
  * sfConfig::get('my_min_length') returns 3
  * sfConfig::get('my_max_length') returns 6, the overridden value.

OK, here's where it gets a bit strange.  Let's imagine that I want to
have the configuration file in my application but with all the values
commented out -- just to remind me what the defaults are.

all:
 #max_length: 6
 #min_length: 3

If you do this, then neither my_min_length or my_max_length is defined
anymore.  But, if you go a step further and comment out the
environment:

#all:
 #max_length: 6
 #min_length: 3

Then you get your default values again.  It's not a big deal, but it
seemed like a strange behavior to me.

I just love the configuration system now that I'm getting the hang of
it!  It's great to be able to define your own config files in plugins.

David

On 2/21/07, chtito <[EMAIL PROTECTED]> wrote:
>
> I totally agree with you, David. I also think a bug should be filed
> about that.
>
> == Olivier
>
> On 22 fév, 02:06, "David Brewer" <[EMAIL PROTECTED]> wrote:
> > I've started setting up some plugins, and I noticed something which
> > struck me as being a bit odd.  I'm unsure if this behavior is by
> > design or if it's a bug.
> >
> > What seemed odd to me is that the order of precedence for settings in
> > config files seems to be:  APP trumps PLUGIN trumps PROJECT.
> >
> > I would have expected this to be APP trumps PROJECT trumps PLUGIN.
> >
> > As a concrete example... I have a plugin which contains a custom
> > config file called config/core.yml.  The plugin loads the config file
> > in its config.php file.
> >
> > If I set up simple test core.yml files in the config directories for
> > the plugin and the project, with different values for a test
> > parameter, the value that is available to my pages is the value that
> > was set in the project's core.yml file.  However, if I add another
> > core.yml file at the application level, then I get the value from the
> > application's core.yml.
> >
> > What I expected is that a developer would want to set up default
> > values for the plugin using the configuration file in the plugin's
> > config file, and then override those values at either the project or
> > application level.
> >
> > Please let me know if that behavior is not intended, I would be happy
> > to file a bug.
> >
> > David Brewer
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to