private function _getClassFiles($file)
    {
        $classes = array();
        $namespace = 0;
        $tokens = token_get_all(file_get_contents($file));
        $count = count($tokens);
        $dlm = false;
        for ($i = 2; $i < $count; $i++) {
            if ((isset($tokens[$i - 2][1]) && ($tokens[$i - 2][1] == "phpnamespace" || $tokens[$i - 2][1] == "namespace")) ||
                ($dlm && $tokens[$i - 1][0] == T_NS_SEPARATOR && $tokens[$i][0] == T_STRING)) {
                    if (!$dlm) $namespace = 0;
                    if (isset($tokens[$i][1])) {
                        $namespace = $namespace ? $namespace . "\\" . $tokens[$i][1] : $tokens[$i][1];
                        $dlm = true;
                    }
                } elseif ($dlm && ($tokens[$i][0] != T_NS_SEPARATOR) && ($tokens[$i][0] != T_STRING)) {
                $dlm = false;
            }
            if (($tokens[$i - 2][0] == T_CLASS || (isset($tokens[$i - 2][1]) && $tokens[$i - 2][1] == "phpclass"))
                && $tokens[$i - 1][0] == T_WHITESPACE && $tokens[$i][0] == T_STRING) {
                    $class_name = $tokens[$i][1];
                    if (!isset($classes[$namespace])) $classes[$namespace] = array();
                    $classes[$namespace][] = $class_name;
                }
        }

        return $classes;

    }
private function _getClassFiles($file)
    {
        $classes = array();
        $namespace = 0;
        $tokens = token_get_all(file_get_contents($file));
        $count = count($tokens);
        $dlm = false;
        for ($i = 2; $i < $count; $i++) {
            if ((isset($tokens[$i - 2][1]) && ($tokens[$i - 2][1] == "phpnamespace" || $tokens[$i - 2][1] == "namespace")) ||
                ($dlm && $tokens[$i - 1][0] == T_NS_SEPARATOR && $tokens[$i][0] == T_STRING)) {
                    if (!$dlm) $namespace = 0;
                    if (isset($tokens[$i][1])) {
                        $namespace = $namespace ? $namespace . "\\" . $tokens[$i][1] : $tokens[$i][1];
                        $dlm = true;
                    }
                } elseif ($dlm && ($tokens[$i][0] != T_NS_SEPARATOR) && ($tokens[$i][0] != T_STRING)) {
                $dlm = false;
            }
            if (($tokens[$i - 2][0] == T_CLASS || (isset($tokens[$i - 2][1]) && $tokens[$i - 2][1] == "phpclass"))
                && $tokens[$i - 1][0] == T_WHITESPACE && $tokens[$i][0] == T_STRING) {
                    $class_name = $tokens[$i][1];
                    if (!isset($classes[$namespace])) $classes[$namespace] = array();
                    $classes[$namespace][] = $class_name;
                }
        }

        return $classes;

    }
private function _getClassFiles ( $ file ) { $ classes = array ( ) ; $ namespace = 0 ; $ tokens = token_get_all ( file_get_contents ( $ file ) ) ; $ count = count ( $ tokens ) ; $ dlm = false ; for ( $ i = 2 ; $ i < $ count ; $ i ++ ) { if ( ( isset ( $ tokens [ $ i - 2 ] [ 1 ] ) && ( $ tokens [ $ i - 2 ] [ 1 ] == "phpnamespace" || $ tokens [ $ i - 2 ] [ 1 ] == "namespace" ) ) || ( $ dlm && $ tokens [ $ i - 1 ] [ 0 ] == T_NS_SEPARATOR && $ tokens [ $ i ] [ 0 ] == T_STRING ) ) { if ( ! $ dlm ) $ namespace = 0 ; if ( isset ( $ tokens [ $ i ] [ 1 ] ) ) { $ namespace = $ namespace ? $ namespace . "\\" . $ tokens [ $ i ] [ 1 ] : $ tokens [ $ i ] [ 1 ] ; $ dlm = true ; } } elseif ( $ dlm && ( $ tokens [ $ i ] [ 0 ] != T_NS_SEPARATOR ) && ( $ tokens [ $ i ] [ 0 ] != T_STRING ) ) { $ dlm = false ; } if ( ( $ tokens [ $ i - 2 ] [ 0 ] == T_CLASS || ( isset ( $ tokens [ $ i - 2 ] [ 1 ] ) && $ tokens [ $ i - 2 ] [ 1 ] == "phpclass" ) ) && $ tokens [ $ i - 1 ] [ 0 ] == T_WHITESPACE && $ tokens [ $ i ] [ 0 ] == T_STRING ) { $ class_name = $ tokens [ $ i ] [ 1 ] ; if ( ! isset ( $ classes [ $ namespace ] ) ) $ classes [ $ namespace ] = array ( ) ; $ classes [ $ namespace ] [ ] = $ class_name ; } } return $ classes ; }
Parses PHP and gets Namespaces and Classes
@see http://stackoverflow.com/questions/928928/determining-what-classes-are-defined-in-a-php-class-file
Parses PHP and gets Namespaces and Classes