Ask your Symfony questions! Pay money and get answers fast! Comodo Trusted Site Seal
Official PayPal Seal

Where is app.yml loaded, and how can I force it to load elsewhere Symfony


Assume I have a app.yml file here:


But I want to give my customers the ability to use my software to customize their own sites. They will have a web form that they can access, and through which they can fill in their own values for app.yml. This new file will be written to a new location:


Once this new file exists, how do I get Symfony to load it, instead of the default file? What core file do I need to hack to make this happen?

Answers (3)


Arturo Linares answers:

You can always read a YML file using sfYaml::load().

For this case, I think you could write a class for custom properties; it would load a custom yml file using sfYaml class and save them using sfConfig::set() to make them accessible everywhere in the site. This functionality could be set as a filter also.


Cristian Baciu answers:


you can put this line on your apps/frontend/config/app.yml file:

<?php include ('/home/zebulon/custom/app.yml'); ?>

Or you can do this on the application level:
<em>(file: apps/frontend/config/frontendConfiguration.class.php)</em>


class frontendConfiguration extends sfApplicationConfiguration
public function initialize()




Jakub Zalas answers:

Similar functionality is already implemented as a [[LINK href=""]]ysfDimensionsPlugin[[/LINK]].

The plugin allows you to split configuration among several files based on a dimension. Dimension might be a culture, user name, domain or whatever you want. In case dimension specific file doesn't exist the default one is used.

Example: you have a <em>apps/frontend/config/app.yml</em> file. If a user name is your dimension than you can (but don't have to) add separate files for each of the users - like <em>apps/frontend/config/zebulon/app.yml</em> or <em>apps/frontend/config/kuba/app.yml</em>.

Only thing you need to do is to figure out how to make that user specific configuration file is searched outside of a symfony dir. So it would look for <em>/home/zebulon/custom/app.yml</em> instead of <em>apps/frontend/config/zebulon/app.yml</em>.

I think it should be relatively easy as it's just a matter of overloading or changing part of the plugin which looks for a dimension specific file.