$plugins = Q_Config::get('Q', 'plugins', array()); if (!in_array("Q", $plugins)) { array_unshift($plugins, "Q"); } } Q_Plugin::checkPermissions(APP_FILES_DIR, array_merge($options, array('deep' => true))); foreach ($plugins as $plugin) { $cons = Q_Config::get('Q', 'pluginInfo', $plugin, 'connections', array()); foreach ($cons as $con) { if (empty($options['sql'][$con])) { $options['sql'][$con] = array('enabled' => true); } } Q_Plugin::installPlugin($plugin, $options); ++$Q_Bootstrap_config_plugin_limit; Q_Bootstrap::configure(true); } if (!$noapp) { // if application is installed/updated, it's schema is always installed/updated $cons = Q_Config::get('Q', 'appInfo', 'connections', array()); foreach ($cons as $con) { if (empty($options['sql'][$con])) { $options['sql'][$con] = array('enabled' => true); } } Q_Plugin::installApp($options); if (empty($noInit) && file_exists($LOCAL_DIR . DS . 'scripts' . DS . 'init.php')) { echo 'Running initialization script' . PHP_EOL; include $LOCAL_DIR . DS . 'scripts' . DS . 'init.php'; } }
require Q_CLASSES_DIR . DS . 'Q' . DS . 'Exception' . DS . 'PhpError.php'; require Q_CLASSES_DIR . DS . 'Db.php'; require Q_CLASSES_DIR . DS . 'Db' . DS . 'Expression.php'; require Q_CLASSES_DIR . DS . 'Db' . DS . 'Query.php'; // // Set things up // Q::milliseconds(); Q_Bootstrap::registerShutdownFunction(); Q_Bootstrap::setDefaultTimezone(); Q_Bootstrap::setIncludePath(); Q_Bootstrap::registerAutoload(); Q_Bootstrap::defineFunctions(); Q_Bootstrap::registerExceptionHandler(); Q_Bootstrap::registerErrorHandler(); Q_Bootstrap::revertSlashes(); Q_Bootstrap::configure(); Q_Bootstrap::alertAboutLocalConfiguration(); Q_Bootstrap::setDefaultTimezone(); Q_Bootstrap::setResponseBuffered(); Q_Bootstrap::setUrls(); Q_Response::setIgnoreUserAbort(); if (defined('APP_WEB_DIR')) { Q_Bootstrap::addAlias(); Q_Request::baseUrl(); } Q::$bootstrapped = true; // // Give the project a chance to load aggregated files, etc. // Q::event('Q/init');