Phergie\Irc\Bot\React\Bot::getPlugins PHP Method

getPlugins() protected method

Extracts plugins from configuration.
protected getPlugins ( array $config ) : Phergie\Irc\Bot\React\PluginInterface[]
$config array Associative array keyed by setting name
return Phergie\Irc\Bot\React\PluginInterface[]
    protected function getPlugins(array $config)
    {
        if (!isset($config['plugins'])) {
            throw new \RuntimeException('Configuration must contain a "plugins" key');
        }
        if (!is_array($config['plugins'])) {
            throw new \RuntimeException('Configuration "plugins" key must reference an array');
        }
        $plugins = array_filter($config['plugins'], function ($plugin) {
            return $plugin instanceof PluginInterface;
        });
        if (count($plugins) != count($config['plugins'])) {
            throw new \RuntimeException('All configuration "plugins" array values must implement \\Phergie\\Irc\\Bot\\React\\PluginInterface');
        }
        $this->registerPluginSubscribers($plugins);
        $processors = $this->getPluginProcessors($config);
        $this->processPlugins($plugins, $processors);
        return $plugins;
    }