Doctrine\OXM\Tools\XmlEntityGenerator::parseTokensInXmlEntityFile PHP Method

parseTokensInXmlEntityFile() private method

private parseTokensInXmlEntityFile ( string $path )
$path string
    private function parseTokensInXmlEntityFile($path)
    {
        $tokens = token_get_all(file_get_contents($path));
        $lastSeenNamespace = '';
        $lastSeenClass = false;
        for ($i = 0; $i < count($tokens); $i++) {
            $token = $tokens[$i];
            if ($token[0] == T_NAMESPACE) {
                $peek = $i;
                $lastSeenNamespace = '';
                while (isset($tokens[++$peek])) {
                    if (';' == $tokens[$peek]) {
                        break;
                    } elseif (is_array($tokens[$peek]) && in_array($tokens[$peek][0], array(T_STRING, T_NS_SEPARATOR))) {
                        $lastSeenNamespace .= $tokens[$peek][1];
                    }
                }
            } else {
                if ($token[0] == T_CLASS) {
                    $lastSeenClass = $lastSeenNamespace . '\\' . $tokens[$i + 2][1];
                    $this->staticReflection[$lastSeenClass]['properties'] = array();
                    $this->staticReflection[$lastSeenClass]['methods'] = array();
                } else {
                    if ($token[0] == T_FUNCTION) {
                        if ($tokens[$i + 2][0] == T_STRING) {
                            $this->staticReflection[$lastSeenClass]['methods'][] = $tokens[$i + 2][1];
                        } else {
                            if ($tokens[$i + 2][0] == T_AMPERSAND && $tokens[$i + 3][0] == T_STRING) {
                                $this->staticReflection[$lastSeenClass]['methods'][] = $tokens[$i + 3][1];
                            }
                        }
                    } else {
                        if (in_array($token[0], array(T_VAR, T_PUBLIC, T_PRIVATE, T_PROTECTED)) && $tokens[$i + 2][0] != T_FUNCTION) {
                            $this->staticReflection[$lastSeenClass]['properties'][] = substr($tokens[$i + 2][1], 1);
                        }
                    }
                }
            }
        }
    }