Пример #1
0
 protected function tokenizeProps(TokenStreamBuilder $builder, $var, $props, $deep, VarParser $parser)
 {
     $keyLen = array_reduce($props, function ($maxLen, $prop) {
         $len = strlen($prop->getName());
         return $len > $maxLen ? $len : $maxLen;
     });
     $builder->addNewLine();
     foreach ($props as $prop) {
         $propName = $prop->getName();
         $propValue = $prop->getValue($var);
         $modifiers = $this->getPropModifiers($prop);
         $diff = $keyLen - strlen($propName . '');
         $builder->addIndention()->addType(implode('', $modifiers))->addWhitespece()->addBrace('[')->addString('"' . $propName . '"')->addBrace(']')->addWhitespece($diff + 1)->addPunctuation('=>')->addWhitespece();
         $stream = $parser->parse($propValue, $deep - 1);
         $builder->addStream($stream);
         $builder->addNewLine();
     }
 }
Пример #2
0
 protected function tokenizeItems(TokenStreamBuilder $builder, $var, $deep, VarParser $parser)
 {
     $keyLen = array_reduce(array_keys($var), function ($maxLen, $key) {
         $len = strlen($key . '') + (is_string($key) ? 2 : 0);
         return $len > $maxLen ? $len : $maxLen;
     });
     $builder->addWhitespece()->addBrace('{')->addNewLine();
     foreach ($var as $key => $value) {
         $builder->addIndention();
         //            $builder->addBrace('[');
         if (is_string($key)) {
             $builder->addString('"' . $key . '"');
         } else {
             $builder->addNumber($key);
         }
         //            $builder->addBrace(']');
         $diff = $keyLen - strlen($key . '') - (is_string($key) ? 2 : 0);
         $builder->addWhitespece($diff + 1)->addPunctuation('=>')->addWhitespece();
         $stream = $parser->parse($value, $deep - 1);
         $builder->addStream($stream);
         $builder->addNewLine();
     }
     $builder->addBrace('}');
 }