- Extracts database configuration into a separate class

- Conditionally sets the session wait_timeout value
- Updates unit tests
This commit is contained in:
Vlad
2017-01-17 11:23:00 -05:00
parent 81d91188ac
commit f734d47b26
4 changed files with 177 additions and 80 deletions

View File

@ -1,9 +1,9 @@
<?php
namespace MailPoet\Config;
use MailPoet\API;
use MailPoet\Cron\CronTrigger;
use MailPoet\Router;
use MailPoet\API;
use MailPoet\Util\ConflictResolver;
use MailPoet\WP\Notice as WPNotice;
@ -19,7 +19,7 @@ class Initializer {
'file' => '',
'version' => '1.0.0'
)) {
Env::init($params['file'], $params['version']);
Env::init($params['file'], $params['version']);
}
function init() {
@ -27,20 +27,38 @@ class Initializer {
// abort initialization if PDO extension is missing
if(!$requirements_check_results[RequirementsChecker::TEST_PDO_EXTENSION] ||
!$requirements_check_results[RequirementsChecker::TEST_VENDOR_SOURCE]) return;
!$requirements_check_results[RequirementsChecker::TEST_VENDOR_SOURCE]
) {
return;
}
$this->setupDB();
// activation function
register_activation_hook(
Env::$file,
array('MailPoet\Config\Activator', 'activate')
array(
'MailPoet\Config\Activator',
'activate'
)
);
add_action('plugins_loaded', array($this, 'setup'));
add_action('init', array($this, 'onInit'));
add_action('widgets_init', array($this, 'setupWidget'));
add_action('wp_loaded', array($this, 'setupHooks'));
add_action('plugins_loaded', array(
$this,
'setup'
));
add_action('init', array(
$this,
'onInit'
));
add_action('widgets_init', array(
$this,
'setupWidget'
));
add_action('wp_loaded', array(
$this,
'setupHooks'
));
}
function checkRequirements() {
@ -49,58 +67,8 @@ class Initializer {
}
function setupDB() {
\ORM::configure(Env::$db_source_name);
\ORM::configure('username', Env::$db_username);
\ORM::configure('password', Env::$db_password);
\ORM::configure('logging', WP_DEBUG);
\ORM::configure('driver_options', array(
\PDO::MYSQL_ATTR_INIT_COMMAND =>
'SET SESSION wait_timeout = 60, ' .
'TIME_ZONE = "' . Env::$db_timezone_offset . '", ' .
'sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""))'
));
$settings = Env::$db_prefix . 'settings';
$segments = Env::$db_prefix . 'segments';
$forms = Env::$db_prefix . 'forms';
$custom_fields = Env::$db_prefix . 'custom_fields';
$subscribers = Env::$db_prefix . 'subscribers';
$subscriber_segment = Env::$db_prefix . 'subscriber_segment';
$subscriber_custom_field = Env::$db_prefix . 'subscriber_custom_field';
$newsletter_segment = Env::$db_prefix . 'newsletter_segment';
$sending_queues = Env::$db_prefix . 'sending_queues';
$newsletters = Env::$db_prefix . 'newsletters';
$newsletter_templates = Env::$db_prefix . 'newsletter_templates';
$newsletter_option_fields = Env::$db_prefix . 'newsletter_option_fields';
$newsletter_option = Env::$db_prefix . 'newsletter_option';
$newsletter_links = Env::$db_prefix . 'newsletter_links';
$newsletter_posts = Env::$db_prefix . 'newsletter_posts';
$statistics_newsletters = Env::$db_prefix . 'statistics_newsletters';
$statistics_clicks = Env::$db_prefix . 'statistics_clicks';
$statistics_opens = Env::$db_prefix . 'statistics_opens';
$statistics_unsubscribes = Env::$db_prefix . 'statistics_unsubscribes';
$statistics_forms = Env::$db_prefix . 'statistics_forms';
define('MP_SETTINGS_TABLE', $settings);
define('MP_SEGMENTS_TABLE', $segments);
define('MP_FORMS_TABLE', $forms);
define('MP_CUSTOM_FIELDS_TABLE', $custom_fields);
define('MP_SUBSCRIBERS_TABLE', $subscribers);
define('MP_SUBSCRIBER_SEGMENT_TABLE', $subscriber_segment);
define('MP_SUBSCRIBER_CUSTOM_FIELD_TABLE', $subscriber_custom_field);
define('MP_SENDING_QUEUES_TABLE', $sending_queues);
define('MP_NEWSLETTERS_TABLE', $newsletters);
define('MP_NEWSLETTER_TEMPLATES_TABLE', $newsletter_templates);
define('MP_NEWSLETTER_SEGMENT_TABLE', $newsletter_segment);
define('MP_NEWSLETTER_OPTION_FIELDS_TABLE', $newsletter_option_fields);
define('MP_NEWSLETTER_LINKS_TABLE', $newsletter_links);
define('MP_NEWSLETTER_POSTS_TABLE', $newsletter_posts);
define('MP_NEWSLETTER_OPTION_TABLE', $newsletter_option);
define('MP_STATISTICS_NEWSLETTERS_TABLE', $statistics_newsletters);
define('MP_STATISTICS_CLICKS_TABLE', $statistics_clicks);
define('MP_STATISTICS_OPENS_TABLE', $statistics_opens);
define('MP_STATISTICS_UNSUBSCRIBES_TABLE', $statistics_unsubscribes);
define('MP_STATISTICS_FORMS_TABLE', $statistics_forms);
$database = new Database();
$database->init();
}
function setup() {