# solid-performance/trunk/src/Performance/Lock/Provider.php

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

- Page: https://pluginprobe.com/plugins/solid-performance/trunk/code/src/Performance/Lock/Provider.php
- Raw: https://pluginprobe.com/plugins/solid-performance/trunk/raw/src/Performance/Lock/Provider.php
- Modified: 2025-02-13T01:04:32+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/trunk/code/src/Performance/Lock/Provider.php#L10-L20`.

```php
<?php
/**
 * The Service Provider for atomic locking.
 *
 * @package SolidWP\Performance
 */

declare( strict_types=1 );

namespace SolidWP\Performance\Lock;

use SolidWP\Performance\Contracts\Service_Provider;
use SolidWP\Performance\Lock\Contracts\Blockable_Lock;
use SolidWP\Performance\Lock\Drivers\Database_Driver;
use SolidWP\Performance\Lock\Tables\Cache_Lock;

/**
 * The Service Provider for atomic locking.
 *
 * @package SolidWP\Performance
 */
final class Provider extends Service_Provider {

	/**
	 * @inheritDoc
	 */
	public function register(): void {
		$this->container->when( Database_Driver::class )
						->needs( '$table' )
						->give( fn(): string => Cache_Lock::table_name( false ) );

		// Set up the Lock Driver.
		$this->container->bind( Contracts\Lock::class, Database_Driver::class );
		// Set up the Lock Decorator.
		$this->container->bind( Blockable_Lock::class, Lock::class );
	}
}

```
