feca-mailshots-plugin/feca_mailshots_plugin/src/bootstrap.php

40 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
use FecaMailshots\Plugin;
use FecaMailshots\WordPress\ProductionWordPressFacade;
require_once __DIR__ . '/autoload.php';
$getOption = static function (string $key): string {
if (!function_exists('get_option')) {
return '';
}
$raw = get_option(\FecaMailshots\Admin\SetupAdminPage::OPTION_KEY, []);
if (!is_array($raw) || !isset($raw[$key])) {
return '';
}
return trim((string) $raw[$key]);
};
$dbConfig = [
'MYSQL_HOST' => $getOption('db_host'),
'MYSQL_PORT' => $getOption('db_port'),
'MYSQL_USER' => $getOption('db_user'),
'MYSQL_PASSWORD' => $getOption('db_password'),
'MAILSHOTS_REMOTE_MYSQL_DB' => $getOption('mailshots_db_name'),
'MEMBERS_REMOTE_MYSQL_DB' => $getOption('members_db_name'),
];
$wp = new ProductionWordPressFacade();
$container = Plugin::buildContainer($dbConfig, $wp);
$container->get(FecaMailshots\Admin\DataSourcesAdminPage::class)->register();
$container->get(FecaMailshots\Admin\MailshotsAdminPage::class)->register();
$container->get(FecaMailshots\Admin\AttachmentsAdminPage::class)->register();
$container->get(FecaMailshots\Admin\PdfAssetsAdminPage::class)->register();
$container->get(FecaMailshots\Admin\SetupAdminPage::class)->register();
$container->get(FecaMailshots\Admin\ProfileAdminPage::class)->register();
$container->get(FecaMailshots\Admin\MailshotTestAdminPage::class)->register();
$container->get(FecaMailshots\Admin\RunMailshotAdminPage::class)->register();