added ability to specify autoloader configuration for bundles in bundles.php

This commit is contained in:
Taylor Otwell 2012-02-20 14:00:11 -06:00
parent a88511428a
commit ec84d3f90d
1 changed files with 31 additions and 0 deletions

View File

@ -63,6 +63,8 @@ public static function register($bundle, $config = array())
} }
static::$bundles[$bundle] = array_merge($defaults, $config); static::$bundles[$bundle] = array_merge($defaults, $config);
static::autoloading($bundle, $config);
} }
/** /**
@ -125,6 +127,35 @@ public static function routes($bundle)
} }
} }
/**
* Register the auto-loading configuration for a bundle.
*
* @param string $bundle
* @param array $config
* @return void
*/
protected static function autoloading($bundle, $config)
{
$path = trim(Bundle::path($bundle), DS);
foreach ((array) $config['autoloads'] as $type => $mappings)
{
// When registering each type of mapping we'll replace the (:bundle)
// place-holder with the path to the bundle's root directory, so
// the developer may dryly register the mappings.
$mappings = array_map(function($mapping) use ($path)
{
return str_replace('(:bundle)', $path, $mapping);
}, $mappings);
// Once the mappings are formatted, we will call the Autoloader
// function matching the mapping type and pass in the array of
// mappings so they can be registered and used.
Autoloader::$type($mappings);
}
}
/** /**
* Disable a bundle for the current request. * Disable a bundle for the current request.
* *