MCPcopy Index your code
hub / github.com/php/frankenphp / generate

Method generate

internal/extgen/phpfunc.go:13–36  ·  view source on GitHub ↗
(fn phpFunction)

Source from the content-addressed store, hash-verified

11}
12
13func (pfg *PHPFuncGenerator) generate(fn phpFunction) string {
14 var builder strings.Builder
15
16 paramInfo := pfg.paramParser.analyzeParameters(fn.Params)
17
18 funcName := NamespacedName(pfg.namespace, fn.Name)
19 _, _ = fmt.Fprintf(&builder, "PHP_FUNCTION(%s)\n{\n", funcName)
20
21 if decl := pfg.paramParser.generateParamDeclarations(fn.Params); decl != "" {
22 builder.WriteString(decl + "\n")
23 }
24
25 builder.WriteString(pfg.paramParser.generateParamParsing(fn.Params, paramInfo.RequiredCount) + "\n")
26
27 builder.WriteString(pfg.generateGoCall(fn) + "\n")
28
29 if returnCode := pfg.generateReturnCode(fn.ReturnType); returnCode != "" {
30 builder.WriteString(returnCode + "\n")
31 }
32
33 builder.WriteString("}\n\n")
34
35 return builder.String()
36}
37
38func (pfg *PHPFuncGenerator) generateGoCall(fn phpFunction) string {
39 callParams := pfg.paramParser.generateGoCallParams(fn.Params)

Calls 8

generateGoCallMethod · 0.95
generateReturnCodeMethod · 0.95
NamespacedNameFunction · 0.85
analyzeParametersMethod · 0.80
WriteStringMethod · 0.80
generateParamParsingMethod · 0.80
StringMethod · 0.45