public function __construct() { Cowl::timer('cowl init'); @session_start(); // I know that the @-notation is frowned upon, but adding it to session_start saves us unnecessary warnings Cache::setDir(COWL_CACHE_DIR); Current::initialize(COWL_DIR); if (COWL_CLI) { $this->parseCLIPath(); } else { $this->parseRequestPath(); } Cowl::timer('cowl set defaults'); // Get and set all directories for various things. list($commands_dir, $model_dir, $validators_dir, $library_dir, $view_dir, $helpers_dir, $helpers_app_dir, $drivers_dir, $app_dir, $view_layout_dir, $validator_error_messages, $lang) = Current::$config->gets('paths.commands', 'paths.model', 'paths.validators', 'paths.library', 'paths.view', 'paths.helpers', 'paths.helpers_app', 'paths.drivers', 'paths.app', 'paths.layouts', 'paths.validator_messages', 'lang'); Controller::setDir($commands_dir); DataMapper::setMappersDir($model_dir); DataMapper::setObjectsDir($model_dir); Validator::setPath($validators_dir); Validator::loadStrings($validator_error_messages, $lang); Templater::setBaseDir($view_dir); Templater::setLayoutDir($view_layout_dir); Library::setPath($library_dir); Helpers::setPath($helpers_dir); Helpers::setAppPath($helpers_app_dir); Database::setPath($drivers_dir); StaticServer::setDir($app_dir); Cowl::timerEnd('cowl set defaults'); Cowl::timer('cowl plugins load'); Current::$plugins = new Plugins(); Cowl::timerEnd('cowl plugins load'); // Load default helper Helpers::load('standard', 'form'); Cowl::timerEnd('cowl init'); }