/**
  * This function returns the list of the ordared parameters
  *
  * @param array $functionParameters The paramaters the function expects $functionParameters
  * @param string $actualParameters The given parameters
  */
 private function getOrderedParameters($functionParameters, array $actualParameters = array())
 {
     $orderedParameters = array();
     foreach ($functionParameters as $parameter) {
         $name = $parameter->getName();
         if (array_key_exists($name, $actualParameters)) {
             $orderedParameters[] = $actualParameters[$name];
         } else {
             if (!$parameter->isOptional()) {
                 $e = new Exception('Mandatory parameter "' . $name . '" not set.');
                 $e->setMissingParameter($name);
                 throw $e;
             } else {
                 $orderedParameters[] = $parameter->getDefaultValue();
             }
         }
     }
     return $orderedParameters;
 }