public function __construct($environment, array $providers)
{
$this->middlewares = new SplPriorityQueue();
$this->configurators = new SplDoublyLinkedList();
$this->requests = new RequestStack();
$this->setEnvironment($environment);
foreach ($providers as $provider) {
$class = is_object($provider) ? get_class($provider) : (string) $provider;
$this->providers[$class] = $provider;
}
}