# solid-performance/1.1.0/src/functions/config.php

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

- Page: https://pluginprobe.com/plugins/solid-performance/1.1.0/code/src/functions/config.php
- Raw: https://pluginprobe.com/plugins/solid-performance/1.1.0/raw/src/functions/config.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/functions/config.php#L10-L20`.

```php
<?php
/**
 * Global functions that provide access to the plugin configuration.
 *
 * @since 0.1.0
 *
 * @package SolidWP\Performance
 */

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;

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

/**
 * Returns the config that is created from a set of defaults, site settings, and network settings.
 *
 * @since 0.1.0
 *
 * @param string $key The key to retrieve from the config in dot notation.
 *
 * @return mixed
 */
function swpsp_config_get( string $key ) {
	$config = swpsp_register_config();
	return $config->get( $key );
}

/**
 * Returns a registered instance of config with all the necessary strategies.
 *
 * @since 0.1.0
 *
 * @return Config
 */
function swpsp_register_config() {
	// Temporary fix for out of sync advanced-cache.php until that feature is released: PR 109.
	if ( ! function_exists( 'swpsp_plugin' ) ) {
		require_once __DIR__ . '/app.php';
	}

	$container = swpsp_plugin()->container();

	if ( $container->isBound( Config::class ) ) {
		return $container->get( Config::class );
	}

	$pipeline = new Pipeline( $container );
	$pipeline->pipes(
		[
			Site::class,
			Site_File::class,
		]
	);

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

	$config = new Config( $pipeline );
	$container->bind( Config::class, $config );

	return $config;
}

```
