diff --git a/includes/Config/Init.php b/includes/Config/Init.php index 6efa02dba..ccf63c679 100644 --- a/includes/Config/Init.php +++ b/includes/Config/Init.php @@ -22,63 +22,82 @@ public function __construct(InitDefaults $actions) { $this->actions = $actions; + $this->setup_environment(); + + // Abort initialization here if fast init wanted (for tests/debug/do not use) + if ($this->actions->return_if_fast_init === true && defined('YOURLS_FAST_INIT') && YOURLS_FAST_INIT){ + return; + } + + $this->setup_core(); + $this->setup_plugins(); + } + + /** + * Set up the initial environment. + * + * @return void + */ + private function setup_environment() { // Include core files - if ($actions->include_core_funcs === true) { + if ($this->actions->include_core_funcs === true) { $this->include_core_functions(); } // Enforce UTC timezone. Date/time can be adjusted with a plugin. - if ($actions->default_timezone === true) { + if ($this->actions->default_timezone === true) { date_default_timezone_set( 'UTC' ); } // Check if we are in maintenance mode - if yes, it will die here. - if ($actions->check_maintenance_mode === true) { + if ($this->actions->check_maintenance_mode === true) { yourls_check_maintenance_mode(); } // Compatibility: REQUEST_URI for IIS - if ($actions->fix_request_uri === true) { + if ($this->actions->fix_request_uri === true) { yourls_fix_request_uri(); } // If request for an admin page is http:// and SSL is required, redirect - if ($actions->redirect_ssl === true) { + if ($this->actions->redirect_ssl === true) { $this->redirect_ssl_if_needed(); } // Create the YOURLS object $ydb that will contain everything we globally need - if ($actions->include_db === true) { + if ($this->actions->include_db === true) { $this->include_db_files(); } // Allow early and unconditional inclusion of custom code - if ($actions->include_cache === true) { + if ($this->actions->include_cache === true) { $this->include_cache_files(); } + } - // Abort initialization here if fast init wanted (for tests/debug/do not use) - if ($actions->return_if_fast_init === true && defined('YOURLS_FAST_INIT') && YOURLS_FAST_INIT){ - return; - } - + /** + * Load core options and check for install/upgrade. + * + * @return void + */ + private function setup_core() { // Read options right from start - if ($actions->get_all_options === true) { + if ($this->actions->get_all_options === true) { yourls_get_all_options(); } // Register shutdown function - if ($actions->register_shutdown === true) { + if ($this->actions->register_shutdown === true) { register_shutdown_function( 'yourls_shutdown' ); } // Core now loaded - if ($actions->core_loaded === true) { + if ($this->actions->core_loaded === true) { yourls_do_action( 'init' ); // plugins can't see this, not loaded yet } // Check if need to redirect to install procedure - if ($actions->redirect_to_install === true) { + if ($this->actions->redirect_to_install === true) { if (!yourls_is_installed() && !yourls_is_installing()) { yourls_no_cache_headers(); yourls_redirect( yourls_admin_url('install.php'), 307 ); @@ -87,42 +106,48 @@ public function __construct(InitDefaults $actions) { } // Check if upgrade is needed (bypassed if upgrading or installing) - if ($actions->check_if_upgrade_needed === true) { + if ($this->actions->check_if_upgrade_needed === true) { if (!yourls_is_upgrading() && !yourls_is_installing() && yourls_upgrade_is_needed()) { yourls_no_cache_headers(); yourls_redirect( yourls_admin_url('upgrade.php'), 307 ); exit(); } } + } + /** + * Load plugins, locales, and admin updates. + * + * @return void + */ + private function setup_plugins() { // Load all plugins - if ($actions->load_plugins === true) { + if ($this->actions->load_plugins === true) { yourls_load_plugins(); } // Trigger plugin loaded action - if ($actions->plugins_loaded_action === true) { + if ($this->actions->plugins_loaded_action === true) { yourls_do_action( 'plugins_loaded' ); } // Load locale - if ($actions->load_default_textdomain === true) { + if ($this->actions->load_default_textdomain === true) { yourls_load_default_textdomain(); } // Is there a new version of YOURLS ? - if ($actions->check_new_version === true) { + if ($this->actions->check_new_version === true) { if (yourls_is_installed() && !yourls_is_upgrading()) { yourls_tell_if_new_version(); } } - if ($actions->init_admin === true) { + if ($this->actions->init_admin === true) { if (yourls_is_admin()) { yourls_do_action( 'admin_init' ); } } - } /**