@@ -24,7 +24,7 @@ class MigratorUtil
2424 */
2525 public static function getClassNameFromFile ($ file )
2626 {
27- $ fp = fopen ($ file , 'r ' );
27+ $ fp = fopen ($ file , 'rb ' );
2828
2929 $ class = $ namespace = $ buffer = '' ;
3030 $ i = 0 ;
@@ -39,15 +39,16 @@ public static function getClassNameFromFile($file)
3939 $ buffer .= fgets ($ fp );
4040 }
4141 $ tokens = @token_get_all ($ buffer );
42+ $ tokensCount = count ($ tokens );
4243
4344 if (false === strpos ($ buffer , '{ ' )) {
4445 continue ;
4546 }
4647
47- for (; $ i < count ( $ tokens ) ; ++$ i ) {
48+ for (; $ i < $ tokensCount ; ++$ i ) {
4849 if (T_NAMESPACE === $ tokens [$ i ][0 ]) {
49- for ($ j = $ i + 1 ; $ j < count ( $ tokens ) ; ++$ j ) {
50- if (\defined ( ' T_NAME_QUALIFIED ' ) && T_NAME_QUALIFIED === $ tokens [$ j ][0 ] || T_STRING === $ tokens [$ j ][0 ]) {
50+ for ($ j = $ i + 1 ; $ j < $ tokensCount ; ++$ j ) {
51+ if (T_STRING === $ tokens [$ j ][0 ] || ( \defined ( ' T_NAME_QUALIFIED ' ) && T_NAME_QUALIFIED === $ tokens [$ j ][0 ]) ) {
5152 $ namespace .= '\\' .$ tokens [$ j ][1 ];
5253 } elseif ('{ ' === $ tokens [$ j ] || '; ' === $ tokens [$ j ]) {
5354 break ;
@@ -56,7 +57,7 @@ public static function getClassNameFromFile($file)
5657 }
5758
5859 if (T_CLASS === $ tokens [$ i ][0 ]) {
59- for ($ j = $ i + 1 ; $ j < count ( $ tokens ) ; ++$ j ) {
60+ for ($ j = $ i + 1 ; $ j < $ tokensCount ; ++$ j ) {
6061 if ('{ ' === $ tokens [$ j ]) {
6162 $ class = $ tokens [$ i + 2 ][1 ];
6263 }
@@ -66,7 +67,7 @@ public static function getClassNameFromFile($file)
6667 }
6768
6869 if (!$ class ) {
69- return ;
70+ throw new \ RuntimeException ( ' Could not determine class for migration ' ) ;
7071 }
7172
7273 return $ namespace .'\\' .$ class ;
0 commit comments