protected function createParameter(\ReflectionParameter $parameter)
    {
        $parameterSrc = '';
        $paramClass = $parameter->getClass();
        if ($parameter->isArray()) {
            $parameterSrc .= 'array ';
        } else if ($paramClass) {
            $parameterSrc .= $paramClass->getName() . ' ';
        }
        if ($parameter->isPassedByReference()) {
            $parameterSrc .= ' &';
        }
        $parameterSrc .= '$' . $parameter->getName();
        if ($parameter->isOptional()) {
            $parameterSrc .= '=';
            if ($parameter->getDefaultValue() === null) {
                $parameterSrc .= 'null';
            } else if ($parameter->getDefaultValue() === false) {
                $parameterSrc .= 'false';
            } else if ($parameter->getDefaultValue() === true) {
                $parameterSrc .= 'true';
            } else if (is_array($parameter->getDefaultValue())) {
                $parameterSrc .= 'array()';
            } else {
                $parameterSrc .= "'" . $parameter->getDefaultValue() . "'";
            }
        }
        return $parameterSrc;
    }