protected function loadTargets($targets, $bundles)
    {
        // build the dependency order of bundles
        $registered = [];
        foreach ($bundles as $name => $bundle) {
            $this->registerBundle($bundles, $name, $registered);
        }
        $bundleOrders = array_combine(array_keys($registered), range(0, count($bundles) - 1));

        // fill up the target which has empty 'depends'.
        $referenced = [];
        foreach ($targets as $name => $target) {
            if (empty($target['depends'])) {
                if (!isset($all)) {
                    $all = $name;
                } else {
                    throw new Exception("Only one target can have empty 'depends' option. Found two now: $all, $name");
                }
            } else {
                foreach ($target['depends'] as $bundle) {
                    if (!isset($referenced[$bundle])) {
                        $referenced[$bundle] = $name;
                    } else {
                        throw new Exception("Target '{$referenced[$bundle]}' and '$name' cannot contain the bundle '$bundle' at the same time.");
                    }
                }
            }
        }
        if (isset($all)) {
            $targets[$all]['depends'] = array_diff(array_keys($registered), array_keys($referenced));
        }

        // adjust the 'depends' order for each target according to the dependency order of bundles
        // create an AssetBundle object for each target
        foreach ($targets as $name => $target) {
            if (!isset($target['basePath'])) {
                throw new Exception("Please specify 'basePath' for the '$name' target.");
            }
            if (!isset($target['baseUrl'])) {
                throw new Exception("Please specify 'baseUrl' for the '$name' target.");
            }
            usort($target['depends'], function ($a, $b) use ($bundleOrders) {
                if ($bundleOrders[$a] == $bundleOrders[$b]) {
                    return 0;
                }

                return $bundleOrders[$a] > $bundleOrders[$b] ? 1 : -1;
            });
            if (!isset($target['__class'])) {
                $target['__class'] = $name;
            }
            $targets[$name] = $this->app->createObject($target);
        }

        return $targets;
    }
protected function loadTargets($targets, $bundles)
    {
        // build the dependency order of bundles
        $registered = [];
        foreach ($bundles as $name => $bundle) {
            $this->registerBundle($bundles, $name, $registered);
        }
        $bundleOrders = array_combine(array_keys($registered), range(0, count($bundles) - 1));

        // fill up the target which has empty 'depends'.
        $referenced = [];
        foreach ($targets as $name => $target) {
            if (empty($target['depends'])) {
                if (!isset($all)) {
                    $all = $name;
                } else {
                    throw new Exception("Only one target can have empty 'depends' option. Found two now: $all, $name");
                }
            } else {
                foreach ($target['depends'] as $bundle) {
                    if (!isset($referenced[$bundle])) {
                        $referenced[$bundle] = $name;
                    } else {
                        throw new Exception("Target '{$referenced[$bundle]}' and '$name' cannot contain the bundle '$bundle' at the same time.");
                    }
                }
            }
        }
        if (isset($all)) {
            $targets[$all]['depends'] = array_diff(array_keys($registered), array_keys($referenced));
        }

        // adjust the 'depends' order for each target according to the dependency order of bundles
        // create an AssetBundle object for each target
        foreach ($targets as $name => $target) {
            if (!isset($target['basePath'])) {
                throw new Exception("Please specify 'basePath' for the '$name' target.");
            }
            if (!isset($target['baseUrl'])) {
                throw new Exception("Please specify 'baseUrl' for the '$name' target.");
            }
            usort($target['depends'], function ($a, $b) use ($bundleOrders) {
                if ($bundleOrders[$a] == $bundleOrders[$b]) {
                    return 0;
                }

                return $bundleOrders[$a] > $bundleOrders[$b] ? 1 : -1;
            });
            if (!isset($target['__class'])) {
                $target['__class'] = $name;
            }
            $targets[$name] = $this->app->createObject($target);
        }

        return $targets;
    }
protected function loadTargets ( $ targets , $ bundles ) { // build the dependency order of bundles $ registered = [ ] ; foreach ( $ bundles as $ name => $ bundle ) { $ this -> registerBundle ( $ bundles , $ name , $ registered ) ; } $ bundleOrders = array_combine ( array_keys ( $ registered ) , range ( 0 , count ( $ bundles ) - 1 ) ) ; // fill up the target which has empty 'depends'. $ referenced = [ ] ; foreach ( $ targets as $ name => $ target ) { if ( empty ( $ target [ 'depends' ] ) ) { if ( ! isset ( $ all ) ) { $ all = $ name ; } else { throw new Exception ( "Only one target can have empty 'depends' option. Found two now: $all, $name" ) ; } } else { foreach ( $ target [ 'depends' ] as $ bundle ) { if ( ! isset ( $ referenced [ $ bundle ] ) ) { $ referenced [ $ bundle ] = $ name ; } else { throw new Exception ( "Target '{$referenced[$bundle]}' and '$name' cannot contain the bundle '$bundle' at the same time." ) ; } } } } if ( isset ( $ all ) ) { $ targets [ $ all ] [ 'depends' ] = array_diff ( array_keys ( $ registered ) , array_keys ( $ referenced ) ) ; } // adjust the 'depends' order for each target according to the dependency order of bundles // create an AssetBundle object for each target foreach ( $ targets as $ name => $ target ) { if ( ! isset ( $ target [ 'basePath' ] ) ) { throw new Exception ( "Please specify 'basePath' for the '$name' target." ) ; } if ( ! isset ( $ target [ 'baseUrl' ] ) ) { throw new Exception ( "Please specify 'baseUrl' for the '$name' target." ) ; } usort ( $ target [ 'depends' ] , function ( $ a , $ b ) use ( $ bundleOrders ) { if ( $ bundleOrders [ $ a ] == $ bundleOrders [ $ b ] ) { return 0 ; } return $ bundleOrders [ $ a ] > $ bundleOrders [ $ b ] ? 1 : - 1 ; } ) ; if ( ! isset ( $ target [ '__class' ] ) ) { $ target [ '__class' ] = $ name ; } $ targets [ $ name ] = $ this -> app -> createObject ( $ target ) ; } return $ targets ; }
Creates full list of output asset bundles.
@param array $targets output asset bundles configuration.
@param \yii\web\AssetBundle[] $bundles list of source asset bundles.
@return \yii\web\AssetBundle[] list of output asset bundles.
@throws Exception on failure.
Creates full list of output asset bundles .