/**
  * @param mixed $args
  *
  * @return string
  */
 private function getArgsLogText($args)
 {
     foreach ($args as &$item) {
         $item = is_array($item) ? 'array(' . count($item) . ')' : $item;
         $item = is_scalar($item) ? gettype($item) : $item;
         if ($item instanceof DependencyReference) {
             $item = (string) $item;
         }
     }
     $args = is_array($args) ? implode(',', $args) : getype($args);
     return $args;
 }
 protected function flat_element($element, $value)
 {
     if (is_string($value)) {
         return $this->flat_process_string($element, $value);
     } elseif (is_array($value)) {
         return $this->flat_process_array($element, $value);
     } else {
         throw new \InvalidArgumentException('Parameter $key, $value should be string or array. ' . getype($value) . ' given.');
     }
 }