@@ -27,14 +27,13 @@ func (cp *classParser) Parse(filename string) ([]phpClass, error) {
2727 return cp .parse (filename )
2828}
2929
30- func (cp * classParser ) parse (filename string ) ([]phpClass , error ) {
30+ func (cp * classParser ) parse (filename string ) (classes []phpClass , err error ) {
3131 fset := token .NewFileSet ()
3232 node , err := parser .ParseFile (fset , filename , nil , parser .ParseComments )
3333 if err != nil {
3434 return nil , fmt .Errorf ("parsing file: %w" , err )
3535 }
3636
37- var classes []phpClass
3837 validator := Validator {}
3938
4039 exportDirectives := cp .collectExportDirectives (node , fset )
@@ -137,20 +136,6 @@ func (cp *classParser) extractPHPClassCommentWithLine(commentGroup *ast.CommentG
137136 return "" , 0
138137}
139138
140- func (cp * classParser ) extractPHPClassComment (commentGroup * ast.CommentGroup ) string {
141- if commentGroup == nil {
142- return ""
143- }
144-
145- for _ , comment := range commentGroup .List {
146- if matches := phpClassRegex .FindStringSubmatch (comment .Text ); matches != nil {
147- return matches [1 ]
148- }
149- }
150-
151- return ""
152- }
153-
154139func (cp * classParser ) parseStructFields (fields []* ast.Field ) []phpClassProperty {
155140 var properties []phpClassProperty
156141
@@ -177,6 +162,7 @@ func (cp *classParser) parseStructField(fieldName string, field *ast.Field) phpC
177162 }
178163
179164 prop .PhpType = cp .goTypeToPHPType (prop .goType )
165+
180166 return prop
181167}
182168
@@ -217,14 +203,19 @@ func (cp *classParser) goTypeToPHPType(goType string) string {
217203 return "mixed"
218204}
219205
220- func (cp * classParser ) parseMethods (filename string ) ([]phpClassMethod , error ) {
206+ func (cp * classParser ) parseMethods (filename string ) (methods []phpClassMethod , err error ) {
221207 file , err := os .Open (filename )
222208 if err != nil {
223209 return nil , err
224210 }
225- defer file .Close ()
226211
227- var methods []phpClassMethod
212+ defer func () {
213+ e := file .Close ()
214+ if err != nil {
215+ err = e
216+ }
217+ }()
218+
228219 scanner := bufio .NewScanner (file )
229220 var currentMethod * phpClassMethod
230221
@@ -239,7 +230,8 @@ func (cp *classParser) parseMethods(filename string) ([]phpClassMethod, error) {
239230
240231 method , err := cp .parseMethodSignature (className , signature )
241232 if err != nil {
242- fmt .Printf ("Warning: Error parsing method signature '%s': %v\n " , signature , err )
233+ fmt .Printf ("Warning: Error parsing method signature %q: %v\n " , signature , err )
234+
243235 continue
244236 }
245237
@@ -253,7 +245,8 @@ func (cp *classParser) parseMethods(filename string) ([]phpClassMethod, error) {
253245 }
254246
255247 if err := validator .validateScalarTypes (phpFunc ); err != nil {
256- fmt .Printf ("Warning: Method '%s::%s' uses unsupported types: %v\n " , className , method .Name , err )
248+ fmt .Printf ("Warning: Method \" %s::%s\" uses unsupported types: %v\n " , className , method .Name , err )
249+
257250 continue
258251 }
259252
@@ -266,6 +259,7 @@ func (cp *classParser) parseMethods(filename string) ([]phpClassMethod, error) {
266259 if err != nil {
267260 return nil , fmt .Errorf ("extracting Go method function: %w" , err )
268261 }
262+
269263 currentMethod .goFunction = goFunc
270264
271265 validator := Validator {}
@@ -318,6 +312,7 @@ func (cp *classParser) parseMethodSignature(className, signature string) (*phpCl
318312 if err != nil {
319313 return nil , fmt .Errorf ("parsing parameter '%s': %w" , part , err )
320314 }
315+
321316 params = append (params , param )
322317 }
323318 }
@@ -366,7 +361,7 @@ func (cp *classParser) sanitizeDefaultValue(value string) string {
366361 return "null"
367362 }
368363
369- return strings .Trim (value , "' \" " )
364+ return strings .Trim (value , `'"` )
370365}
371366
372367func (cp * classParser ) extractGoMethodFunction (scanner * bufio.Scanner , firstLine string ) (string , error ) {
0 commit comments