# Application Configuration

You should give an array of config or an ini config file(see Yaf_Config_Ini) path to Yaf_Application::__construct().

Yaf will merge the application configurations and user configurations automatically. The application configurations have prefix "yaf." or "application.". If both "yaf." and "application." exist, "application." will be accepted preferentially.

Example #1 An PHP array example

`<?php
$configs = array(
"application" => array(
"directory" => dirname(__FILE__),
"dispatcher" => array(
"catchException" => 0,
),
"view" => array(
"ext" => "phtml",
),
),
);
$app = new Yaf_Application($configs);
?>`

Example #2 An ini file example

    [yaf]
    yaf.directory = APPLICATION_PATH "/appliation"
    yaf.dispatcher.catchException = 0

    [product : yaf]
    ; user configuration list here

Yaf Application Config
Name | Default | Changelog
--- | --- | ---
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Here's a short explanation of the configuration directives.

`application.directory` string

  The directory of the application, that is the folder which contains the "controllers", "views", "models", "plugins" folders.

  > Note:

  > This config entry is the only one which doesn't has a default value. You should always define it manually.

`application.ext` string

  The file ext of the PHP script, used in class autoloading( Yaf_Loader).

`application.view.ext` string

  The file ext of the view template scripts.

`application.modules` string

  A comma-separated list of the registered modules, used in the route process, especially while there are more than three segments in the PATH_INFO,

  Yaf need a way to find out whether the first segment is a module name or not.

`application.library` string

  The local library directory, see Yaf_Loader and yaf.library.

  > Note:

  > After Yaf 2.1.6, this config entry can be an array. The library path will try to use the items setted in application.library.directory

`application.library.directory` string

  Alias of application.library. Introduced in Yaf 2.1.6

`application.library.namespace` string

  A comma-separated prefix of local library namespace.

  Introduced in Yaf 2.1.6

`application.bootstrap` string

  A absolute path of the Bootstrap class script.

`application.baseUri` string

  Used to remove a fixed prefix of request uri in route process. Take a example, comes a request with request uri "/prefix/controller/action". if you set application.baseUri to "/prefix", then only "/controller/action" will take as the PATH_INFO in route process.

  In generally, there is no need to set this value.

`application.dispatcher.throwException` bool

  If it set to On, Yaf will throw an exception while some error occurring. See also Yaf_Dispatcher::throwException().

`application.dispatcher.catchException` bool

  If it set to On, Yaf will forward to Error controller/Action while there is an unhandled exception. See also Yaf_Dispatcher::catchException().

`application.dispatcher.defaultRoute` string

  The default Route, if it is not specificed, Static route will be used as default. See: Yaf_Router::addRoute().

`application.dispatcher.defaultModule` string

  The default module name, see also Yaf_Dispatcher::setDefaultModule().

`application.dispatcher.defaultController` string

  The default controller name, see also Yaf_Dispatcher::setDefaultController().

`application.dispatcher.defaultAction` string

  The default action name, see also Yaf_Dispatcher::setDefaultAction().

`application.system` string

  Set yaf runtime configure in application.ini, like: application.system.lowcase_path

  > Note:

  > only those PHP_INI_ALL configures can be set in this way