Example #1
0
 /**
  * @param $code
  * @param array $ignoredConstants
  * @return Constant[]
  */
 public function scan($code, $ignoredConstants = array())
 {
     $constants = array();
     $tokenStream = token_get_all($code);
     foreach ($tokenStream as $key => $token) {
         if ($token[0] !== T_STRING) {
             continue;
         }
         if (isset($token[1]) && in_array($token[1], $this->keywords)) {
             continue;
         }
         if (isset($token[1]) && in_array($token[1], $ignoredConstants)) {
             continue;
         }
         // ::
         // ->
         // \
         if (isset($tokenStream[$key - 1]) && in_array($tokenStream[$key - 1][0], array(T_PAAMAYIM_NEKUDOTAYIM, T_OBJECT_OPERATOR, T_NS_SEPARATOR))) {
             continue;
         }
         // USE
         // CONST
         if (isset($tokenStream[$key - 2]) && in_array($tokenStream[$key - 2][0], array(T_NAMESPACE, T_USE, T_CONST, T_NEW, T_AS, T_INSTANCEOF, T_EXTENDS, T_IMPLEMENTS))) {
             continue;
         }
         // (
         // ::
         if (isset($tokenStream[$key + 1]) && (in_array($tokenStream[$key + 1][0], array(T_WHITESPACE, T_PAAMAYIM_NEKUDOTAYIM, T_NAMESPACE, T_NS_SEPARATOR)) || $tokenStream[$key + 1] === "(")) {
             continue;
         }
         $constant = new Constant();
         $constant->setLine($token[2]);
         $constant->setName($token[1]);
         $constants[] = $constant;
     }
     return $constants;
 }
Example #2
0
 public function testGetSetName()
 {
     $this->constant->setName('foo');
     $this->assertEquals('foo', $this->constant->getName());
 }