Hello everybody I hope you will enjoy reading this proposal as much as i did writing it.
Please feel free to contribute, either with criticism or encouragements. eZ Component: Configuration overloading, Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: James Pic :Revision: $Revision$ :Date: $Date$ Introduction ============ Description ----------- The configuration package provides the tools to store configuration settings for your application. Configuration options are stored on disk using INI files or other configuration formats. The configuration package comes with support for manipulation and storage of INI files and caching. Enhancement #10979 is about making the configuration package able to use several configuration directories with a merge mechanism. Current implementation ---------------------- The configuration package does not provide any mechanism to get a final setting value from several configuration directories. Requirements ============ The configuration merger would take a couple of configuration objects. One configuration object holds the final configuration values, and another one contains the default configuration value. Each default configuration value with is not defined in the final configuration values is copied in the final configuration object. Example ------- Consider an app called myapp which i maintain. It holds *default* configuration directory in myapp/config. With the following routes.ini file:: [myapp.register] controller=myAppController railsRoute=register action=register template=register.ezt Consider a project called yourproject which you maintain. It holds the *final* configuration directory in yourproject/config. With the following routes.ini file:: [myapp.register] controller=yourProjectController The merged configuration would look like:: [myapp.register] controller=yourProjectController railsRoute=register action=register template=register.ezt Note the different "controller" setting value. The *final* configuration value took over ("overloaded") the *default* configuration value. Design goals ============ The configuration merger should provide a method to write the merged configurations into an arbitrary directory. For example: yourproject/cache/config. .. Local Variables: mode: rst fill-column: 79 End: vim: et syn=rst tw=79 -- Components mailing list Components@lists.ez.no http://lists.ez.no/mailman/listinfo/components