phpmock\generator\ParameterBuilder::build PHP Method

build() public method

Builds the parameters for an existing function.
public build ( string $functionName )
$functionName string The function name.
    public function build($functionName)
    {
        if (!function_exists($functionName)) {
            return;
        }
        $function = new \ReflectionFunction($functionName);
        $signatureParameters = [];
        $bodyParameters = [];
        foreach ($function->getParameters() as $reflectionParameter) {
            if ($this->isVariadic($reflectionParameter)) {
                break;
            }
            $parameter = $reflectionParameter->isPassedByReference() ? "&\${$reflectionParameter->name}" : "\${$reflectionParameter->name}";
            $signatureParameter = $reflectionParameter->isOptional() ? sprintf("%s = '%s'", $parameter, MockFunctionGenerator::DEFAULT_ARGUMENT) : $parameter;
            $signatureParameters[] = $signatureParameter;
            $bodyParameters[] = $parameter;
        }
        $this->signatureParameters = implode(", ", $signatureParameters);
        $this->bodyParameters = implode(", ", $bodyParameters);
    }

Usage Example

 /**
  * Defines the mock function.
  *
  * @SuppressWarnings(PHPMD)
  */
 public function defineFunction()
 {
     $name = $this->mock->getName();
     $parameterBuilder = new ParameterBuilder();
     $parameterBuilder->build($name);
     $data = ["namespace" => $this->mock->getNamespace(), "name" => $name, "fqfn" => $this->mock->getFQFN(), "signatureParameters" => $parameterBuilder->getSignatureParameters(), "bodyParameters" => $parameterBuilder->getBodyParameters()];
     $this->template->setVar($data, false);
     $definition = $this->template->render();
     eval($definition);
 }
All Usage Examples Of phpmock\generator\ParameterBuilder::build