 Maslosoft Embedi API
	Maslosoft Embedi API
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php
/**
 * This software package is licensed under `AGPL, Commercial` license[s].
 *
 * @package maslosoft/embedi
 * @license AGPL, Commercial
 *
 * @copyright Copyright (c) Peter Maselkowski <pmaselkowski@gmail.com>
 *
 */
namespace Maslosoft\EmbeDi\Managers;
use Maslosoft\EmbeDi\EmbeDi;
use Maslosoft\EmbeDi\Storage\SourceStorage;
/**
 * SourceManager
 *
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
 */
class SourceManager
{
    /**
     * Instance id
     * @var string
     */
    private $_instanceId = '';
    /**
     * Preset ID
     * @var string
     */
    private $_presetId = '';
    /**
     * Source storage
     * @var SourceStorage
     */
    private $storage = null;
    public function __construct($instanceId = EmbeDi::DefaultInstanceId, $presetId = null)
    {
        $this->_instanceId = $instanceId;
        $this->_presetId = $presetId;
        $this->storage = new SourceStorage(__CLASS__, $instanceId, $presetId);
    }
    public function add($source)
    {
        $sources = $this->storage->sources;
        $sources[] = $source;
        $this->storage->sources = $sources;
    }
    public function get($configName)
    {
        foreach ($this->storage->sources as $configs)
        {
            foreach ($configs as $name => $config)
            {
                if ($name === $configName)
                {
                    return EmbeDi::fly($this->_instanceId, $this->_presetId)->apply($config);
                }
            }
        }
    }
}
	 API documentation generated by ApiGen
