# premmerce/1.0/src/Container.php

Premmerce, version 1.0. 158 lines.

- Page: https://pluginprobe.com/plugins/premmerce/1.0/code/src/Container.php
- Raw: https://pluginprobe.com/plugins/premmerce/1.0/raw/src/Container.php
- Modified: 2017-12-28T16:31:42+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/premmerce/1.0/code/src/Container.php#L10-L20`.

```php
<?php namespace Premmerce\Premmerce;


use Premmerce\Premmerce\Admin\Handlers\PluginsHandler;
use Premmerce\Premmerce\Admin\Handlers\PremiumHandler;
use Premmerce\Premmerce\Admin\Handlers\ToolbarHandler;
use Premmerce\Premmerce\Admin\Handlers\WizardHandler;
use Premmerce\Premmerce\Api\PluginApi;
use Premmerce\Premmerce\Api\WizardApi;
use Premmerce\Premmerce\WordpressSDK\FileManager\FileManager;
use Premmerce\Premmerce\WordpressSDK\Notifications\AdminNotifier;

/**
 * Class Container
 *
 * This class responsive for instantiation on plugin classes
 *
 * @package Premmerce\Premmerce
 */
class Container{


	/**
	 * @var FileManager
	 */
	private $fileManager;

	/**
	 * @var PluginApi
	 */
	private $pluginsApi;

	/**
	 * @var WizardApi
	 */
	private $wizardApi;

	/**
	 * @var PluginsHandler
	 */
	private $pluginsHandler;

	/**
	 * @var ToolbarHandler
	 */
	private $toolbarHandler;

	/**
	 * @var WizardHandler
	 */
	private $wizardHandler;

	/**
	 * @var PremiumHandler
	 */
	private $premiumHandler;

	/**
	 * @var AdminNotifier
	 */
	private $notifier;

	/**
	 * Container constructor.
	 *
	 * @param FileManager $fileManager
	 */
	public function __construct(FileManager $fileManager){
		$this->fileManager = $fileManager;
	}

	/**
	 * @return PluginApi
	 */
	public function getPluginsApi(){

		if(is_null($this->pluginsApi)){
			$this->pluginsApi = new PluginApi($this->getFileManager());
		}

		return $this->pluginsApi;
	}

	/**
	 * @return WizardApi
	 */
	public function getWizardApi(){
		if(is_null($this->wizardApi)){
			$this->wizardApi = new WizardApi($this->getPluginsApi());
		}

		return $this->wizardApi;
	}

	/**
	 * @return PluginsHandler
	 */
	public function getPluginsHandler(){
		if(is_null($this->pluginsHandler)){
			$this->pluginsHandler = new PluginsHandler($this->getPluginsApi(), $this->getFileManager());
		}

		return $this->pluginsHandler;
	}

	/**
	 * @return WizardHandler
	 */
	public function getWizardHandler(){
		if(is_null($this->wizardHandler)){
			$this->wizardHandler = new WizardHandler($this->getWizardApi(), $this->getFileManager());
		}

		return $this->wizardHandler;

	}

	/**
	 * @return ToolbarHandler
	 */
	public function getToolbarHandler(){
		if(is_null($this->toolbarHandler)){
			$this->toolbarHandler = new ToolbarHandler($this->getPluginsApi(), $this->getWizardApi());
		}

		return $this->toolbarHandler;
	}

	public function getPremiumHandler(){
		if(is_null($this->premiumHandler)){
			$this->premiumHandler = new PremiumHandler($this->getPluginsApi(), $this->fileManager);
		}

		return $this->premiumHandler;
	}


	/**
	 * @return AdminNotifier
	 */
	public function getNotifier(){

		if(is_null($this->notifier)){
			$this->notifier = new AdminNotifier();
		}

		return $this->notifier;
	}

	/**
	 * @return FileManager
	 */
	public function getFileManager(){
		return $this->fileManager;
	}


}
```
