protected function registerProviders()
{
$dependants = [];
foreach ($this->providers as $provider) {
if (is_string($provider)) {
$provider = new $provider();
}
$this->registerProvider($provider);
if ($provider instanceof DependantProviderInterface) {
$dependants[] = $provider;
}
}
foreach ($dependants as $dependant) {
$this->checkProviderDependencies($dependant);
}
}