Skip to content
Snippets Groups Projects
Select Git revision
  • c41a955cbed90e3408621911831de79f2a55fb1b
  • 3.9 default
  • develop
  • 6.0
  • 5.0
  • 4.0
  • scrutinizer-patch-4
  • scrutinizer-patch-3
  • scrutinizer-patch-2
  • scrutinizer-patch-1
  • 3.7
  • 3.8
  • 3.6
  • 3.9_backported
  • 3.8_backported
  • 3.7_backported
  • 3.5
  • 3.6_backported
  • 3.5_backported
  • 3.4
  • 3.3_backported
  • 6.0.4
  • 6.0.3
  • 5.0.7
  • 6.0.2
  • 6.0.1
  • 5.0.6
  • 6.0.0
  • 5.0.5
  • 6.0.0-rc
  • 5.0.4
  • 6.0.0-beta
  • 5.0.3
  • 4.0.6
  • 5.0.2
  • 5.0.1
  • 4.0.5
  • 5.0.0
  • 4.0.4
  • 5.0.0-rc2
  • 5.0.0-rc1
41 results

fpdi.php

Blame
  • DocBlock.php 1.47 KiB
    <?php
    
    class Nmc_DocBlock {
    
        protected $_values = array();
        static protected $_multiFields = array('param');
    
    
        /**
         * Creates a new Nmc_DocBlock object from a DocBlock string
         *
         * @param string $string
         * @return Nmc_DocBlock
         */
        static public function createFromString($string)
        {
            $string = explode("\n", $string);
            $string = array_slice($string, 1, -1);
            $parsedDocBlock = array();
            foreach($string as $lineNumber => $line) {
                $leadingAstrisk = strpos($line, '*');
                $line = substr($line, $leadingAstrisk + 1);
                $line = trim($line);
                if($line[0] == '@') {
                    $nextSpace = strpos($line, ' ');
                    $key = substr($line, 1, $nextSpace - 1);
                    $value = substr($line, $nextSpace + 1);
                    if(in_array($key, self::$_multiFields)) {
                        $parsedDocBlock[$key][] = $value;
                    } else {
                        $parsedDocBlock[$key] = $value;
                    }
                } else {
                    $parsedDocBlock['description'] .= $line . "\n";
                }
            }
    
            $docBlock = new Nmc_DocBlock();
            foreach($parsedDocBlock as $key => $value) {
                $docBlock->$key = $value;
            }
            return $docBlock;
        }
    
        public function __get($name)
        {
            return $this->_values[$name];
        }
    
        public function __set($name, $value)
        {
            $this->_values[$name] = $value;
        }
    
    }