Elgg\Database\Plugins::getProvides PHP Method

getProvides() public method

Array in the form array( 'provide_type' => array( 'provided_name' => array( 'version' => '1.8', 'provided_by' => 'provider_plugin_id' ) ) )
public getProvides ( string $type = null, string $name = null ) : array
$type string The type of provides to return
$name string A specific provided name to return. Requires $provide_type.
return array
    function getProvides($type = null, $name = null)
    {
        if ($this->provides_cache === null) {
            $active_plugins = $this->find('active');
            $provides = array();
            foreach ($active_plugins as $plugin) {
                $plugin_provides = array();
                $manifest = $plugin->getManifest();
                if ($manifest instanceof \ElggPluginManifest) {
                    $plugin_provides = $plugin->getManifest()->getProvides();
                }
                if ($plugin_provides) {
                    foreach ($plugin_provides as $provided) {
                        $provides[$provided['type']][$provided['name']] = array('version' => $provided['version'], 'provided_by' => $plugin->getID());
                    }
                }
            }
            $this->provides_cache = $provides;
        }
        if ($type && $name) {
            if (isset($this->provides_cache[$type][$name])) {
                return $this->provides_cache[$type][$name];
            } else {
                return false;
            }
        } elseif ($type) {
            if (isset($this->provides_cache[$type])) {
                return $this->provides_cache[$type];
            } else {
                return false;
            }
        }
        return $this->provides_cache;
    }