# solid-performance/1.1.0/src/Performance/Plugin/Activator.php

Solid Performance – Your No-Code Caching, Performance, &amp; Page Speed Solution, version 1.1.0. 129 lines.

- Page: https://pluginprobe.com/plugins/solid-performance/1.1.0/code/src/Performance/Plugin/Activator.php
- Raw: https://pluginprobe.com/plugins/solid-performance/1.1.0/raw/src/Performance/Plugin/Activator.php
- Modified: 2024-09-03T15:51:20+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/solid-performance/1.1.0/code/src/Performance/Plugin/Activator.php#L10-L20`.

```php
<?php
/**
 * All functionality related to activating the plugin.
 *
 * @since 0.1.0
 *
 * @package SolidWP\Performance
 */

declare( strict_types=1 );

namespace SolidWP\Performance\Plugin;

use SolidWP\Performance\Config\Advanced_Cache;
use SolidWP\Performance\Config\Config;
use SolidWP\Performance\Config\Strategies\Network;
use SolidWP\Performance\Config\Strategies\Network_File;
use SolidWP\Performance\Config\Strategies\Pipeline;
use SolidWP\Performance\Config\Strategies\Site;
use SolidWP\Performance\Config\Strategies\Site_File;
use SolidWP\Performance\Config\WP_Config;
use SolidWP\Performance\Container;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Handles actions that should run when the plugin is activated.
 *
 * @since 0.1.0
 *
 * @package SolidWP\Performance
 */
final class Activator {

	/**
	 * @var Container
	 */
	private Container $container;

	/**
	 * @param  Container $container The container.
	 */
	public function __construct( Container $container ) {
		$this->container = $container;
	}

	/**
	 * Activation hook.
	 *
	 * @since 0.1.0
	 *
	 * @return void
	 */
	public function __invoke(): void {
		$this->advanced_cache_dropin_init();
		$this->cache_directory_init();
		$this->wp_cache_init();
		$this->initialize_settings();
	}

	/**
	 * Ensure that the advanced-cache.php drop-in is copied into place.
	 *
	 * @since 0.1.0
	 *
	 * @return void
	 */
	private function advanced_cache_dropin_init(): void {
		$this->container->get( Advanced_Cache::class )->generate();
	}

	/**
	 * Ensure that the cache directory exists.
	 *
	 * @since 0.1.0
	 *
	 * @return void
	 */
	private function cache_directory_init(): void {
		if ( ! is_dir( swpsp_config_get( 'page_cache.cache_dir' ) ) ) {
			wp_mkdir_p( swpsp_config_get( 'page_cache.cache_dir' ) );
		}
	}


	/**
	 * Set the WP_CACHE constant.
	 *
	 * @since 0.1.0
	 *
	 * @return void
	 */
	private function wp_cache_init(): void {
		$this->container->get( WP_Config::class )->set_wp_cache( 'true' );
	}

	/**
	 * Saves a set of default values in the config.
	 *
	 * @since 0.1.0
	 *
	 * @return void
	 */
	private function initialize_settings(): void {
		$pipeline = new Pipeline( $this->container );

		$pipeline->pipes(
			[
				Site::class,
				Site_File::class,
			]
		);

		if ( is_multisite() ) {
			$pipeline->pipe(
				[
					Network::class,
					Network_File::class,
				]
			);
		}

		$config = new Config( $pipeline );
		$config->save();
	}
}

```
