# give/4.16.8.1/src/Log/LogServiceProvider.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 82 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Log/LogServiceProvider.php
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/Log/LogServiceProvider.php
- Modified: 2022-06-29T23:03:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Log/LogServiceProvider.php#L10-L20`.

```php
<?php

namespace Give\Log;

use Give\Framework\Migrations\MigrationsRegister;
use Give\Helpers\Hooks;
use Give\Log\Commands\FlushLogsCommand;
use Give\Log\Helpers\Environment;
use Give\Log\Migrations\CompleteRemovedLegacyLogMigration;
use Give\Log\Migrations\CreateNewLogTable;
use Give\Log\Migrations\DeleteOldLogTables;
use Give\Log\Migrations\MigrateExistingLogs;
use Give\Log\Migrations\RemoveSensitiveLogs;
use Give\ServiceProviders\ServiceProvider;
use WP_CLI;

/**
 * Class LogServiceProvider
 * @package Give\Log
 *
 * @since 2.10.0
 */
class LogServiceProvider implements ServiceProvider
{
    /**
     * @inheritdoc
     */
    public function register()
    {
        global $wpdb;

        $wpdb->give_log = "{$wpdb->prefix}give_log";

        give()->singleton(Log::class);
        give()->singleton(LogRepository::class);
    }

    /**
     * @inheritdoc
     */
    public function boot()
    {
        $this->registerMigrations();

        if (defined('WP_CLI') && WP_CLI) {
            $this->registerCliCommands();
        }

        Hooks::addAction('give_register_updates', MigrateExistingLogs::class, 'register');

        // Hook up
        if (Environment::isLogsPage()) {
            Hooks::addAction('admin_enqueue_scripts', Assets::class, 'enqueueScripts');
        }
    }

    /**
     * Register migration
     */
    private function registerMigrations()
    {
        give(MigrationsRegister::class)->addMigrations([
            CreateNewLogTable::class,
            RemoveSensitiveLogs::class,
            CompleteRemovedLegacyLogMigration::class
        ]);

        // Check if Logs migration batch processing is completed
        if (give_has_upgrade_completed(MigrateExistingLogs::id())) {
            give(MigrationsRegister::class)->addMigration(DeleteOldLogTables::class);
        }
    }

    /**
     * Register CLI commands
     */
    private function registerCliCommands()
    {
        WP_CLI::add_command('give flush-logs', give()->make(FlushLogsCommand::class));
    }
}

```
