# elementor/3.22.0-dev4/app/modules/kit-library/data/base-controller.php

Elementor Website Builder – more than just a page builder, version 3.22.0-dev4. 42 lines.

- Page: https://pluginprobe.com/plugins/elementor/3.22.0-dev4/code/app/modules/kit-library/data/base-controller.php
- Raw: https://pluginprobe.com/plugins/elementor/3.22.0-dev4/raw/app/modules/kit-library/data/base-controller.php
- Modified: 2023-04-23T11:22:46+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/elementor/3.22.0-dev4/code/app/modules/kit-library/data/base-controller.php#L10-L20`.

```php
<?php
namespace Elementor\App\Modules\KitLibrary\Data;

use Elementor\Plugin;
use Elementor\Data\V2\Base\Controller;
use Elementor\Core\Utils\Collection;
use Elementor\Modules\Library\User_Favorites;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Base_Controller extends Controller {
	/**
	 * @var Repository
	 */
	private $repository;

	/**
	 * @return Repository
	 */
	public function get_repository() {
		if ( ! $this->repository ) {
			/** @var \Elementor\Core\Common\Modules\Connect\Module $connect */
			$connect = Plugin::$instance->common->get_component( 'connect' );

			$subscription_plans = ( new Collection( $connect->get_subscription_plans() ) )
				->map( function ( $value ) {
					return $value['label'];
				} );

			$this->repository = new Repository(
				$connect->get_app( 'kit-library' ),
				new User_Favorites( get_current_user_id() ),
				$subscription_plans
			);
		}

		return $this->repository;
	}
}

```
