Zephir\CompilerFile::compileFunction PHP Method

compileFunction() public method

Compiles a function
public compileFunction ( zephir\CompilationContext $compilationContext, zephir\FunctionDefinition $functionDefinition )
$compilationContext zephir\CompilationContext
$functionDefinition zephir\FunctionDefinition
    public function compileFunction(CompilationContext $compilationContext, FunctionDefinition $functionDefinition)
    {
        /** Make sure we do not produce calls like ZEPHIR_CALL_SELF */
        $bakClassDefinition = $compilationContext->classDefinition;
        $compilationContext->classDefinition = null;
        $compilationContext->currentMethod = $functionDefinition;
        $codePrinter = $compilationContext->codePrinter;
        $codePrinter->output('PHP_FUNCTION(' . $functionDefinition->getInternalName() . ') {');
        $functionDefinition->compile($compilationContext);
        $codePrinter->output('}');
        $codePrinter->outputBlankLine();
        /** Restore */
        $compilationContext->classDefinition = $bakClassDefinition;
        $compilationContext->currentMethod = null;
    }