protected function checkProviderDependencies(DependantProviderInterface $provider)
{
$errors = [];
foreach ($provider->getClassDependencies() as $class) {
if (!class_exists($class)) {
$errors[] = "Class must exist: {$class}";
}
}
foreach ($provider->getContainerDependencies() as $class) {
if (!$this->container->isBound($class)) {
$errors[] = "Class must be bound to the container: {$class}";
}
}
foreach ($provider->getProviderDependencies() as $class) {
if (!isset($this->providers[$class])) {
$errors[] = "Provider must be loaded: {$class}";
}
}
if ($errors) {
$providerClass = get_class($provider);
$message = "Errors while registering provider: {$providerClass}";
if (count($errors) > 1) {
$message .= "\n" . implode("\n", $errors);
} else {
$message .= " - {$errors[0]}";
}
throw new Providers\ProviderException($message, $errors);
}
}