6

Ive got in app.yml some configration data, and I want to foreach them in action. I try do this by get them by sfConfig::get('app_datas') but it fails. Lets show them in details:

YAML:

all:
  datas:
    foo: bar
    foo2: bar2

and in the actions.class.php I try use this code:

foreach (sfConfig::get('app_datas') as $key => $value) {

    echo "key $key has value $value";

}

it doesnt work because sfConfig::get('app_datas') is NULL, how simly get it?

2 Answers 2

17

If you want to access first level as an array you can introduce dummy level in between, just like @jeremy suggested. Prefix it with a dot if you don't want it to actually appear in config the variable names:

all:
  .baz:
    datas:
      foo: bar
      foo2: bar2

Now you should be able to access your data with:

foreach (sfConfig::get('app_datas') as $key => $value) 
{
  echo "key $key has value $value";
}
Sign up to request clarification or add additional context in comments.

2 Comments

way to go, kuba - saved my day on a hard deadline!
Minor correction: the dotted value on the second line (.baz) should have a colon suffix, same as the other lines. (I'll make an edit).
12

When Symfony loads app.yml config files, it only stores the 2nd level down. So you can't access app_datas directly. If you want to get an array containing foo and foo2, make a YAML file like:

all:
  datas:
    baz:
      foo: bar
      foo2: bar2

You can then do sfConfig::get('app_datas_baz') which will be an array containing foo and foo2 as keys.

On Edit: kuba's way is better than a dummy; forgot you could do that.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.