public static function parse($doc)
    {
        $block = new DocBlock();
        $lines = explode("\n", $doc);

        // remove first line
        unset($lines[0]);

        foreach ($lines as $line) {
            $line = trim($line);
            $line = substr($line, 2);

            if (isset($line[0]) && $line[0] == '@') {
                $line = substr($line, 1);
                $sp   = strpos($line, ' ');
                $bp   = strpos($line, '(');

                if ($sp !== false || $bp !== false) {
                    if ($sp !== false && $bp === false) {
                        $pos = $sp;
                    } elseif ($sp === false && $bp !== false) {
                        $pos = $bp;
                    } else {
                        $pos = $sp < $bp ? $sp : $bp;
                    }

                    $key   = substr($line, 0, $pos);
                    $value = substr($line, $pos);
                } else {
                    $key   = $line;
                    $value = null;
                }

                $key   = trim($key);
                $value = trim($value);

                if (!empty($key)) {
                    // if key contains backslashes its a namespace use only the
                    // short name
                    $pos = strrpos($key, '\\');
                    if ($pos !== false) {
                        $key = substr($key, $pos + 1);
                    }

                    $block->addAnnotation($key, $value);
                }
            }
        }

        return $block;
    }
public static function parse($doc)
    {
        $block = new DocBlock();
        $lines = explode("\n", $doc);

        // remove first line
        unset($lines[0]);

        foreach ($lines as $line) {
            $line = trim($line);
            $line = substr($line, 2);

            if (isset($line[0]) && $line[0] == '@') {
                $line = substr($line, 1);
                $sp   = strpos($line, ' ');
                $bp   = strpos($line, '(');

                if ($sp !== false || $bp !== false) {
                    if ($sp !== false && $bp === false) {
                        $pos = $sp;
                    } elseif ($sp === false && $bp !== false) {
                        $pos = $bp;
                    } else {
                        $pos = $sp < $bp ? $sp : $bp;
                    }

                    $key   = substr($line, 0, $pos);
                    $value = substr($line, $pos);
                } else {
                    $key   = $line;
                    $value = null;
                }

                $key   = trim($key);
                $value = trim($value);

                if (!empty($key)) {
                    // if key contains backslashes its a namespace use only the
                    // short name
                    $pos = strrpos($key, '\\');
                    if ($pos !== false) {
                        $key = substr($key, $pos + 1);
                    }

                    $block->addAnnotation($key, $value);
                }
            }
        }

        return $block;
    }
public static function parse ( $ doc ) { $ block = new DocBlock ( ) ; $ lines = explode ( "\n" , $ doc ) ; // remove first line unset ( $ lines [ 0 ] ) ; foreach ( $ lines as $ line ) { $ line = trim ( $ line ) ; $ line = substr ( $ line , 2 ) ; if ( isset ( $ line [ 0 ] ) && $ line [ 0 ] == '@' ) { $ line = substr ( $ line , 1 ) ; $ sp = strpos ( $ line , ' ' ) ; $ bp = strpos ( $ line , '(' ) ; if ( $ sp !== false || $ bp !== false ) { if ( $ sp !== false && $ bp === false ) { $ pos = $ sp ; } elseif ( $ sp === false && $ bp !== false ) { $ pos = $ bp ; } else { $ pos = $ sp < $ bp ? $ sp : $ bp ; } $ key = substr ( $ line , 0 , $ pos ) ; $ value = substr ( $ line , $ pos ) ; } else { $ key = $ line ; $ value = null ; } $ key = trim ( $ key ) ; $ value = trim ( $ value ) ; if ( ! empty ( $ key ) ) { // if key contains backslashes its a namespace use only the // short name $ pos = strrpos ( $ key , '\\' ) ; if ( $ pos !== false ) { $ key = substr ( $ key , $ pos + 1 ) ; } $ block -> addAnnotation ( $ key , $ value ) ; } } } return $ block ; }
Parses the annotations from the given doc block

@param string $doc
@return \PSX\Framework\Util\Annotation\DocBlock
Parses the annotations from the given doc block