Exemplo n.º 1
0
 public function testParseArguments()
 {
     //		$this->assertSame(array( 1 ), PhpSourceUtilities::parseParameters('1'));
     $this->assertSame(array(1, 2), PhpSourceUtilities::parseArguments('1,2'));
     $this->assertSame(array(1, 2), PhpSourceUtilities::parseArguments('1, 2'));
     $this->assertSame(array(1, 2), PhpSourceUtilities::parseArguments('"1", 2'));
     $this->assertSame(array('one', 'two'), PhpSourceUtilities::parseArguments('one, two'));
     $this->assertSame(array('one', 'two'), PhpSourceUtilities::parseArguments('"one", two'));
     $this->assertSame(array('one', 'two'), PhpSourceUtilities::parseArguments('\'one\', \'two\''));
     $this->assertSame(array(1, 'two', 'three, and a bit', 'four', 5.6), PhpSourceUtilities::parseArguments('1, \'two\', "three, and a bit", four, "5.6"'));
 }
Exemplo n.º 2
0
 /**
  * @inheritdoc
  */
 protected function getTokenResultReplacement($token)
 {
     $result = null;
     $matches = array();
     if (preg_match('/^([a-zA-Z][a-zA-Z0-9]*?)\\/(.*?\\(.*\\))$/', $token, $matches) && sizeof($matches) > 2) {
         $target = $this->engine->getModule($matches[1]);
         $call = $matches[2];
     } else {
         $target = $this->engine;
         $call = $token;
     }
     $parsed = PhpSourceUtilities::parseFunctionCall($call);
     $method = array($target, $parsed['name']);
     if (is_callable($method)) {
         $result = call_user_func_array($method, $parsed['arguments']);
     }
     return $result;
 }
Exemplo n.º 3
0
 /**
  * @inheritdoc
  */
 public function activateDecorators()
 {
     foreach (func_get_args() as $arg) {
         if (is_array($arg) && ArrayUtilities::isIndexed($arg)) {
             // An indexed array, recurse with each element of the array as a separate argument.
             call_user_func_array(array($this, 'activateDecorators'), $arg);
         } elseif (is_array($arg)) {
             // An associative array, ensure it has an 'arguments' key.
             $this->activeDecorators[] = array_merge(array('arguments' => array()), $arg);
         } elseif (is_string($arg)) {
             // A string, use the parseFunctionCall() utility method.
             $this->activeDecorators[] = PhpSourceUtilities::parseFunctionCall($arg);
         } else {
             // Unhandled type.
             throw new \InvalidArgumentException(sprintf('Cannot use [%s] as decorator specification', TypeUtilities::describe($arg)));
         }
     }
     return $this;
 }