Example #1
0
 /**
  * @param ServiceProviderInterface $provider
  * @return string[]
  * @throws OverflowException
  * @throws ResourceUndefinedException
  */
 private function orderProvider(ServiceProviderInterface $provider)
 {
     $localOrder = [];
     $requires = $provider->getRequires();
     $provides = $provider->getProvides();
     if (!empty($provides)) {
         foreach ($provides as $resource) {
             $localOrder = array_merge($localOrder, $this->orderResource($resource));
         }
     } else {
         foreach ($requires as $resource) {
             $localOrder = array_merge($localOrder, $this->orderResource($resource));
         }
         $localOrder[] = get_class($provider);
     }
     return $localOrder;
 }