# double-opt-in/5.5.0/src/Providers/RepositoryServiceProvider.php

Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification, version 5.5.0. 65 lines.

- Page: https://pluginprobe.com/plugins/double-opt-in/5.5.0/code/src/Providers/RepositoryServiceProvider.php
- Raw: https://pluginprobe.com/plugins/double-opt-in/5.5.0/raw/src/Providers/RepositoryServiceProvider.php
- Modified: 2026-01-29T14:02:52+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/double-opt-in/5.5.0/code/src/Providers/RepositoryServiceProvider.php#L10-L20`.

```php
<?php
/**
 * Repository Service Provider
 *
 * @package Forge12\DoubleOptIn\Providers
 * @since   4.0.0
 */

namespace Forge12\DoubleOptIn\Providers;

use Forge12\DoubleOptIn\Container\Container;
use Forge12\DoubleOptIn\Container\ServiceProviderInterface;
use Forge12\DoubleOptIn\Repository\OptInRepository;
use Forge12\DoubleOptIn\Repository\OptInRepositoryInterface;
use Forge12\DoubleOptIn\Service\OptInLinkGenerator;
use Forge12\DoubleOptIn\Service\OptInValidator;
use Forge12\Shared\LoggerInterface;

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

/**
 * Class RepositoryServiceProvider
 *
 * Registers repository and service bindings.
 */
class RepositoryServiceProvider implements ServiceProviderInterface {

	/**
	 * {@inheritdoc}
	 */
	public function register( Container $container ): void {
		// OptIn Repository
		$container->singleton(
			OptInRepositoryInterface::class,
			function ( Container $c ) {
				global $wpdb;
				return new OptInRepository(
					$wpdb,
					$c->get( LoggerInterface::class )
				);
			}
		);

		// OptIn Link Generator
		$container->singleton(
			OptInLinkGenerator::class,
			function () {
				return new OptInLinkGenerator();
			}
		);

		// OptIn Validator
		$container->singleton(
			OptInValidator::class,
			function ( Container $c ) {
				return new OptInValidator(
					$c->get( LoggerInterface::class )
				);
			}
		);
	}
}

```
