protected function _argumentsToString($arguments)
    {
        $strings = array();
        foreach($arguments as $name => $value) {
            $key = !is_integer($name) ? "'$name' => " : '';

            if (is_object($value)) {
                $argument = get_class($value) . ' $' . $name;
            } else if (is_numeric($value)) {
                $argument = $value;
            } else if (is_string($value)) {
                $argument = "'$value'";
            } else if (is_array($value)) {
                $argument = 'array(' . $this->_argumentsToString($value) . ')';
            } else if (is_null($value)) {
                $argument = 'null';
            } else if ($value === true) {
                $argument = 'true';
            } else if ($value === false) {
                $argument = 'false';
            }

            $strings[] = $key . $argument;
        }

        return implode(', ', $strings);
    }