Configurate Application

The application configuration contains all miscellaneous configuration for the application. It is located with the rest of the applications configuration in /Application/Config and is expected to be namned Application.json.

The default file

Below is the content if a default applications configuration.
{
  "Application": {
    "DefaultLayout": "Default",
    "NotFoundController" : "Home",
    "NotFoundAction": "NotFound",
    "CapitalizeControllerName": true,
    "CapitalizeActionName": true
  },
  "Debug":{
    "DieOnRoutingError": true,
    "DontCacheModels": false
  },
  "Logging": {
    "FileDirectory": "/logs/",
    "Loggers": [
    ]
  }
}
Most fields are quite straightforward. The configuration is split into three different segments. The first is Application and contains all general settings for the application. The second is debug and has to to with debugging or lack of disabling of debuggin on production sites. The last is logging.

Application settings

DefaultLayout
Determines with layout file the actions will use as default when rendering a view, so it doesn't have to be written into every single action. This value can still be overwritten for specific actions or controllers by setting $this->Layout.

NotFoundController
Used in combination with NotFoundAction to specify what to do when the routing engine can't map a URL to a controller/action/variable combination or when the application is returning a 404 status code on purpose, (eg. by using return $this->HttpNotFound()).

NotFoundAction
See above.

CapitalizeControllerName
Can be set to true or false. Determines if the controller name returned from the routing engine should capitalize the first letter of the controller name when instanciating the controller. The routing engine always returns the controller name in lower case by default. If the controllers are written using UpperCamelCase (also called Pascal Case).

CapitalizeControllerName
Can be set to true or false. Same as CapitalizeControllerName but used when invoking an action on the controller..

Debug

DieOnRoutingError
Can be set to true or false. If set to false, the routing engine will not give useful information if it fails to find a valid route from the URL given the current routing configuration. Should always be set to true on production sites.

DontCacheModels
Can be set to true or false. If set to true, the ORM will never cache the result of the lookup on the database tables associated with the models. Good for debugging bit means this lookup has to be done for every single request to the page which slows the page down.

Logging

FileDirectory
Base catalog (under the applications root catalog) for where the store FileLogs

Loggers
Contains a list of enabled loggers. These will later be created using the name of the loggers created here and can be accessed from the application's controllers by using $this->Logging->[Log name].

There exists different types Loggers by default. These are FileLog which writes all log messages to a log file, PdoSqlLog which stores the log messages to a database and CacheLogger which only stores the messages to memory is wiped which each request. New logs can be added either via the application by adding them to /Application/Loggers or trough plugins in /Plugins/[Plugin name]/Loggers and making the class inherit the ILog interface. Please see the individual loggers for more information.

Please note that multiple loggers of the same kind can be added as long as their names differs.

A cache logger can be created by adding the following object to the Loggers array. This will then be accessable by $this->Logging->Cache->Write().

{
    "CacheLogger": {
        "Name": "Cache"
    }
}

A cache logger can be created by adding the following object to the Loggers array.

{
    "FileLog": {
        "Name": "File",
        "FileName": "File.log"
    }
}