code: protected function getDependencies($class)
      {
          if (isset($this->_reflections[$class])) {
              return [$this->_reflections[$class], $this->_dependencies[$class]];
          }
  
          $dependencies = [];
          try {
              $reflection = new ReflectionClass($class);
          } catch (\ReflectionException $e) {
              throw new InvalidConfigException('Failed to instantiate component or class "' . $class . '".', 0, $e);
          }
  
          $constructor = $reflection->getConstructor();
          if ($constructor !== null) {
              foreach ($constructor->getParameters() as $param) {
                  if (version_compare(PHP_VERSION, '5.6.0', '>=') && $param->isVariadic()) {
                      break;
                  } elseif ($param->isDefaultValueAvailable()) {
                      $dependencies[] = $param->getDefaultValue();
                  } else {
                      $c = $param->getClass();
                      $dependencies[] = Instance::of($c === null ? null : $c->getName());
                  }
              }
          }
  
          $this->_reflections[$class] = $reflection;
          $this->_dependencies[$class] = $dependencies;
  
          return [$reflection, $dependencies];
      }
docs: Returns the dependencies of the specified class.
  @param string $class class name, interface name or alias name
  @return array the dependencies of the specified class.
  @throws InvalidConfigException if a dependency cannot be resolved or if a dependency cannot be fulfilled.