1010use TokenReflection \ReflectionClass as ParsedClass ;
1111use TokenReflection \ReflectionFileNamespace as ParsedFileNamespace ;
1212
13- class BeforeMockTransformer extends WeavingTransformer {
14-
13+ class BeforeMockTransformer extends WeavingTransformer
14+ {
1515 protected $ before = " if (( \$__am_res = __amock_before( \$this, __CLASS__, __FUNCTION__, array(%s), false)) !== __AM_CONTINUE__) return \$__am_res; " ;
1616 protected $ beforeStatic = " if (( \$__am_res = __amock_before(get_called_class(), __CLASS__, __FUNCTION__, array(%s), true)) !== __AM_CONTINUE__) return \$__am_res; " ;
1717
@@ -66,33 +66,42 @@ public function transform(StreamMetaData $metadata)
6666
6767 $ methods = $ class ->getMethods ();
6868 foreach ($ methods as $ method ) {
69- /** @var $method ReflectionMethod` **/
70- if ($ method ->getDeclaringClassName () != $ class ->getName ()) continue ;
69+ /** @var $method ReflectionMethod` * */
70+ if ($ method ->getDeclaringClassName () != $ class ->getName ()) {
71+ continue ;
72+ }
7173 // methods from traits have the same declaring class name, so check that the filenames match, too
72- if ($ method ->getFileName () != $ class ->getFileName ()) continue ;
73- if ($ method ->isAbstract ()) continue ;
74- $ beforeDefinition = $ method ->isStatic ()
74+ if ($ method ->getFileName () != $ class ->getFileName ()) {
75+ continue ;
76+ }
77+ if ($ method ->isAbstract ()) {
78+ continue ;
79+ }
80+ $ beforeDefinition = $ method ->isStatic ()
7581 ? $ this ->beforeStatic
7682 : $ this ->before ;
7783 $ reflectedParams = $ method ->getParameters ();
7884
7985 $ params = [];
8086
8187 foreach ($ reflectedParams as $ reflectedParam ) {
82- /** @var $reflectedParam ReflectionParameter **/
83- $ params [] = ($ reflectedParam ->isPassedByReference () ? '&$ ' : '$ ' ). $ reflectedParam ->getName ();
88+ /** @var $reflectedParam ReflectionParameter * */
89+ $ params [] = ($ reflectedParam ->isPassedByReference () ? '&$ ' : '$ ' ) . $ reflectedParam ->getName ();
8490 }
8591 $ params = implode (", " , $ params );
8692 $ beforeDefinition = sprintf ($ beforeDefinition , $ params );
87- for ($ i = $ method ->getStartLine ()-1 ; $ i < $ method ->getEndLine ()-1 ; $ i ++) {
88- $ pos = strpos ($ dataArray [$ i ],'{ ' );
89- if ($ pos === false ) continue ;
90- $ dataArray [$ i ] = substr ($ dataArray [$ i ], 0 , $ pos +1 ).$ beforeDefinition .substr ($ dataArray [$ i ], $ pos +1 );
93+ for ($ i = $ method ->getStartLine () - 1 ; $ i < $ method ->getEndLine () - 1 ; $ i ++) {
94+ $ pos = strpos ($ dataArray [$ i ], '{ ' );
95+ if ($ pos === false ) {
96+ continue ;
97+ }
98+ $ dataArray [$ i ] = substr ($ dataArray [$ i ], 0 , $ pos + 1 ) . $ beforeDefinition . substr ($ dataArray [$ i ], $ pos + 1 );
9199 break ;
92100 }
93101 }
94102 }
95103 }
96104 $ metadata ->source = implode ("\n" , $ dataArray );
97105 }
106+
98107}
0 commit comments