Back to WebAssetManager class

Method getConnectionsGraph

protected array
getConnectionsGraph
(array $assets)
Build Graph of Outgoing and Incoming connections for given assets.
Parameters
  • \Joomla\CMS\WebAsset\WebAssetItem[] $assets Asset instances
Returns
  • array
Since
  • 4.0.0

Method getConnectionsGraph - Source code

/**
 * Build Graph of Outgoing and Incoming connections for given assets.
 *
 * @param   WebAssetItem[]  $assets  Asset instances
 *
 * @return  array
 *
 * @since   4.0.0
 */
protected function getConnectionsGraph(array $assets) : array
{
    $graphOutgoing = [];
    $graphIncoming = [];
    foreach ($assets as $asset) {
        $name = $asset->getName();
        // Initialise an array for outgoing nodes of the asset
        $graphOutgoing[$name] = [];
        // Initialise an array for incoming nodes of the asset
        if (!\array_key_exists($name, $graphIncoming)) {
            $graphIncoming[$name] = [];
        }
        // Collect an outgoing/incoming nodes
        foreach ($asset->getDependencies() as $depName) {
            $graphOutgoing[$name][$depName] = $depName;
            $graphIncoming[$depName][$name] = $name;
        }
    }
    return ['outgoing' => $graphOutgoing, 'incoming' => $graphIncoming];
}