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

processPlugins() protected method

Processes a list of plugins for use.
protected processPlugins ( array $plugins, array $processors, SplObjectStorage $processedPlugins = null )
$plugins array
$processors array
$processedPlugins SplObjectStorage
    protected function processPlugins(array $plugins, array $processors, \SplObjectStorage $processedPlugins = null)
    {
        // Initialise store of already-processed plugins, to prevent container-based endless recursion
        if ($processedPlugins === null) {
            $processedPlugins = new \SplObjectStorage();
        }
        foreach ($plugins as $plugin) {
            if ($processedPlugins->contains($plugin)) {
                continue;
            }
            $processedPlugins->attach($plugin);
            foreach ($processors as $processor) {
                $processor->process($plugin, $this);
            }
            if ($plugin instanceof PluginContainerInterface) {
                $this->processPlugins($plugin->getPlugins(), $processors, $processedPlugins);
            }
        }
    }