<?php

class Shutdown_Handler
{
    private $plugins_handler;
    private $cached_plugins;
    private $was_included_by_autoloader;
    public function __construct($plugins_handler, $cached_plugins, $was_included_by_autoloader)
    {
        $this->plugins_handler = $plugins_handler;
        $this->cached_plugins = $cached_plugins;
        $this->was_included_by_autoloader = $was_included_by_autoloader;
    }
    public function __invoke()
    {
        if (!did_action('plugins_loaded')) {
            if (!empty($this->cached_plugins)) {
                $this->plugins_handler->cache_plugins(array());
            }
            return;
        }
        try {
            $active_plugins = $this->plugins_handler->get_active_plugins(false, !$this->was_included_by_autoloader);
        } catch (\Exception $ex) {
            if (!empty($this->cached_plugins)) {
                $this->plugins_handler->cache_plugins(array());
            }
            return;
        }
        sort($active_plugins);
        if ($this->cached_plugins === $active_plugins) {
            return;
        }
        $this->plugins_handler->cache_plugins($active_plugins);
    }
}