Phan to nowy analizator statyczny kodu PHP. Korzysta z nowości w PHP 7 - drzewa składniowego (AST). Opowiem o moich doświadczeniach z codziennej pracy z tym narzędziem.
e P a r a m e t e r ( $ i ) { } o n e P a r a m e t e r ( 1 , 2 ) ; / / C a l l w i t h 2 a r g ( s ) t o \ o n e p a r a m e t e r ( ) w h i c h o n l y t a k e s 1 a r g ( s )
, 3 7 ] ) { } / / i n t t o a r r a y c o m p a r i s o n i f ( [ 1 3 , 3 7 ] = = ' s t r i n g ' ) { } / / a r r a y t o s t r i n g c o m p a r i s o n
n i n t * / f u n c t i o n v o i d R e t u r n ( ) { r e t u r n n u l l ; } / / R e t u r n i n g t y p e n u l l b u t v o i d r e t u r n ( ) i s d e c l a r e d t o r e t u r n i n t
n i n t [ ] * / f u n c t i o n o l d C o m m e n t ( ) { r e t u r n [ ' t o b e o r n o t t o b e ' ] ; } / / R e t u r n i n g t y p e s t r i n g [ ] b u t o l d C o m m e n t ( ) i s d e c l a r e d t o r e t u r n i n t [ ]
e r t y o f u n d e c l a r e d t y p e \ m e m c a c h e d C a l l t o m e t h o d g e t f r o m u n d e c l a r e d c l a s s \ m e m c a c h e d Moje PHP 7 nie miało wkompilowanego tego rozszerzenia, dodałem do analizy plik "nagłówkowy" z definicją interface'u.
i g n a t u r e M i s m a t c h D e c l a r a t i o n o f f u n c t i o n b u i l d F o r m ( \ s y m f o n y \ c o m p o n e n t \ f o r m \ f o r m b u i l d e r i n t e r f a c e $ b u i l d e r , a r r a y $ o p t i o n s b u i l d F o r m ( \ S y m f o n y \ C o m p o n e n t \ F o r m \ f o r m b u i l d e r i n t e r f a c e $ b u i l d e r , a r r a y $ o p t i o n s Problem poprawiony w 1h od zgłoszenia
t ' = > [ ' a p p / A p p K e r n e l . p h p ' , ' v e n d o r / d o c t r i n e / c o l l e c t i o n s / l i b / D o c t r i n e / C o m m o n / C o l l e c t i o n s / A r r a y C o l l e c t i o n / / 8 7 i n n y c h p l i k ó w z v e n d o r ' v e n d o r / s y m f o n y / s y m f o n y / s r c / S y m f o n y / C o m p o n e n t / Y a m l / Y a m l . p h p ' , ] , ' d i r e c t o r y _ l i s t ' = > [ ' s r c ' , ] , ' e x c l u d e _ a n a l y s i s _ d i r e c t o r y _ l i s t ' = > [ ' v e n d o r / ' , ] ,