当前位置: 首页>>代码示例>>PHP>>正文


PHP Standard::prettyPrintFile方法代码示例

本文整理汇总了PHP中PhpParser\PrettyPrinter\Standard::prettyPrintFile方法的典型用法代码示例。如果您正苦于以下问题:PHP Standard::prettyPrintFile方法的具体用法?PHP Standard::prettyPrintFile怎么用?PHP Standard::prettyPrintFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PhpParser\PrettyPrinter\Standard的用法示例。


在下文中一共展示了Standard::prettyPrintFile方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: generate

 public function generate($schemaFilePath, $name, $namespace, $directory)
 {
     $context = $this->createContext($schemaFilePath, $name, $namespace, $directory);
     if (!file_exists($directory . DIRECTORY_SEPARATOR . 'Model')) {
         mkdir($directory . DIRECTORY_SEPARATOR . 'Model', 0755, true);
     }
     if (!file_exists($directory . DIRECTORY_SEPARATOR . 'Normalizer')) {
         mkdir($directory . DIRECTORY_SEPARATOR . 'Normalizer', 0755, true);
     }
     $prettyPrinter = new Standard();
     $modelFiles = $this->modelGenerator->generate($context->getRootReference(), $name, $context);
     $normalizerFiles = $this->normalizerGenerator->generate($context->getRootReference(), $name, $context);
     $generated = [];
     foreach ($modelFiles as $file) {
         $generated[] = $file->getFilename();
         file_put_contents($file->getFilename(), $prettyPrinter->prettyPrintFile([$file->getNode()]));
     }
     foreach ($normalizerFiles as $file) {
         $generated[] = $file->getFilename();
         file_put_contents($file->getFilename(), $prettyPrinter->prettyPrintFile([$file->getNode()]));
     }
     if ($this->fixer !== null) {
         $config = Config::create()->setRiskyAllowed(true)->setRules(array('@Symfony' => true, 'empty_return' => false, 'concat_without_spaces' => false, 'double_arrow_multiline_whitespaces' => false, 'unalign_equals' => false, 'unalign_double_arrow' => false, 'align_double_arrow' => true, 'align_equals' => true, 'concat_with_spaces' => true, 'newline_after_open_tag' => true, 'ordered_use' => true, 'phpdoc_order' => true, 'short_array_syntax' => true))->finder(DefaultFinder::create()->in($directory));
         $resolver = new ConfigurationResolver();
         $resolver->setDefaultConfig($config);
         $resolver->resolve();
         $this->fixer->fix($config);
     }
     return $generated;
 }
开发者ID:stof,项目名称:jane,代码行数:30,代码来源:Jane.php

示例2: compile

 /**
  * @return string
  * @throws Exception\DomainException
  */
 public function compile()
 {
     $class = $this->compileClass();
     $node = $this->builderFactory->namespace($this->namespace)->addStmt($this->builderFactory->use('zdi\\Container'))->addStmt($this->builderFactory->use('zdi\\Container\\CompiledContainer'))->addStmt($class)->getNode();
     $prettyPrinter = new PrettyPrinter\Standard();
     return $prettyPrinter->prettyPrintFile(array($node));
 }
开发者ID:jbboehr,项目名称:zdi,代码行数:11,代码来源:Compiler.php

示例3: applyPatch

 /**
  * @param Patch $patch
  * @param string $code
  * @return string
  */
 private function applyPatch(Patch $patch, $code)
 {
     $statements = $this->parser->parse($code);
     foreach ($patch->getInsertions() as $insertion) {
         try {
             $codeToInsert = $insertion->getCode();
             $codeToInsert = sprintf('<?php %s', preg_replace('/^\\s*<\\?php/', '', $codeToInsert));
             $additionalStatements = $this->parser->parse($codeToInsert);
         } catch (Error $e) {
             //we should probably log this and have a dev mode or something
             continue;
         }
         switch ($insertion->getType()) {
             case CodeInsertion::TYPE_BEFORE:
                 array_unshift($statements, ...$additionalStatements);
                 break;
             case CodeInsertion::TYPE_AFTER:
                 array_push($statements, ...$additionalStatements);
                 break;
         }
     }
     foreach ($patch->getTransformers() as $transformer) {
         $statements = $transformer($statements);
     }
     return $this->printer->prettyPrintFile($statements);
 }
开发者ID:jacmoe,项目名称:php-workshop,代码行数:31,代码来源:CodePatcher.php

示例4: assertResponse

 protected function assertResponse($file)
 {
     $parsed = $this->parser->parse('<?php' . PHP_EOL . (string) $this->body);
     $printed = $this->printer->prettyPrintFile($parsed) . PHP_EOL;
     $filename = sprintf('%s/resources/generation/%s.php', TEST_DIR, $file);
     if (!file_exists($filename)) {
         touch($filename);
     }
     $expected = file_get_contents($filename);
     try {
         $this->assertSame($expected, $printed);
     } catch (\Exception $e) {
         file_put_contents($filename, $printed);
         throw $e;
     }
 }
开发者ID:tebru,项目名称:retrofit-php,代码行数:16,代码来源:AbstractHandlerTest.php

示例5: testRessources

 /**
  * @dataProvider resourceProvider
  */
 public function testRessources($expected, $swaggerSpec, $name)
 {
     $swagger = JaneSwagger::build();
     $printer = new Standard();
     $files = $swagger->generate($swaggerSpec, 'Joli\\Jane\\Swagger\\Tests\\Expected', 'dummy');
     // Resource + NormalizerFactory
     $this->assertCount(2, $files);
     $resource = $files[1];
     $this->assertEquals($resource->getFilename(), 'dummy/Resource/TestResource.php');
     $this->assertEquals(trim($expected), trim($printer->prettyPrintFile([$resource->getNode()])));
 }
开发者ID:stof,项目名称:jane-swagger,代码行数:14,代码来源:JaneSwaggerResourceTest.php

示例6: compile

 /**
  * Compile the view with devise code in it
  *
  * @param  string $view
  * @return string
  */
 public function compile($view)
 {
     ini_set('xdebug.max_nesting_level', env('XDEBUG_MAX_NESTING_LEVEL', 3000));
     $this->parser = new DeviseParser();
     $prettyPrinter = new Standard();
     $pristine = $this->pristine($view);
     $modified = $this->modified($view);
     $pristine[0]->stmts = $modified;
     $result = $prettyPrinter->prettyPrintFile($pristine);
     return $result;
 }
开发者ID:devisephp,项目名称:cms,代码行数:17,代码来源:DeviseCompiler.php

示例7: createClass

 private function createClass($commande, $description)
 {
     $output = $this->_output;
     $root = ROOT . DS;
     $app = $root . 'app' . DS . "Application";
     $lib = $root . 'library' . DS . "commands.php";
     // create command name
     $name = S::create($commande)->replace(':', ' ')->toTitleCase()->replace(' ', '')->append("Command")->__toString();
     // create FQN
     $fqn = "Application\\Commands\\" . $name;
     // check avaibality
     // load commands.php file
     $code = file_get_contents($lib);
     $parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP5);
     $prettyPrinter = new PrettyPrinter\Standard();
     $stmts = $parser->parse($code);
     foreach ($stmts[0]->expr as $express) {
         $tmp = $express[0]->value->value;
         if (S::create($tmp)->humanize()->__toString() == S::create($fqn)->humanize()->__toString()) {
             $output->writeln("This command already exists in commands.php");
             die;
         }
     }
     // commands not exists add it to commands.php
     $nb = count($stmts[0]->expr->items);
     $ligne = 4 + $nb;
     $attributes = array("startLine" => $ligne, "endLine" => $ligne, "kind" => 2);
     $obj = new \PhpParser\Node\Expr\ArrayItem(new \PhpParser\Node\Scalar\String_($fqn, $attributes), null, false, $attributes);
     array_push($stmts[0]->expr->items, $obj);
     $code = $prettyPrinter->prettyPrint($stmts);
     $code = "<?php \r\n" . $code;
     $output->writeln("Create FQN commande " . $fqn);
     $path = $app . DS . "Commands" . DS . $name . ".php";
     $arg1 = new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_($commande));
     $arg2 = new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_($description));
     $arg3 = new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_('Start process'));
     $arg4 = new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_('Finished'));
     $factory = new BuilderFactory();
     $node = $factory->namespace('Application\\Commands')->addStmt($factory->use('Symfony\\Component\\Console\\Command\\Command'))->addStmt($factory->use('Symfony\\Component\\Console\\Input\\InputArgument'))->addStmt($factory->use('Symfony\\Component\\Console\\Input\\InputInterface'))->addStmt($factory->use('Symfony\\Component\\Console\\Input\\InputOption'))->addStmt($factory->use('Symfony\\Component\\Console\\Output\\OutputInterface'))->addStmt($factory->class($name)->extend('Command')->addStmt($factory->method('configure')->makeProtected()->addStmt(new Node\Expr\MethodCall(new Node\Expr\Variable('this'), "setName", array($arg1)))->addStmt(new Node\Expr\MethodCall(new Node\Expr\Variable('this'), "setDescription", array($arg2))))->addStmt($factory->method('execute')->makeProtected()->addParam($factory->param('input')->setTypeHint('InputInterface'))->addParam($factory->param('output')->setTypeHint('OutputInterface'))->addStmt(new Node\Expr\MethodCall(new Node\Expr\Variable('output'), "writeln", array($arg3)))->addStmt(new Node\Expr\MethodCall(new Node\Expr\Variable('output'), "writeln", array($arg4)))))->getNode();
     $stmts = array($node);
     $prettyPrinter = new PrettyPrinter\Standard();
     $php = $prettyPrinter->prettyPrintFile($stmts);
     file_put_contents($path, $php);
     $fs = new Filesystem();
     // if file exists add command to commands.php
     if ($fs->exists($path)) {
         $output->writeln("File saved in " . $path);
         $output->writeln("Register command to console");
         file_put_contents($lib, $code);
     } else {
         $output->writeln("File not created");
     }
 }
开发者ID:kletellier,项目名称:mvc,代码行数:53,代码来源:CreateConsoleCommand.php

示例8: generateFromNeonFile

 /**
  * @param string $path
  */
 public function generateFromNeonFile($path)
 {
     $definition = Neon::decode(file_get_contents($path));
     assert(isset($definition['class']));
     assert(isset($definition['type']));
     assert($definition['type'] === 'in-place');
     $data = $definition['data'];
     $output = $this->configuration->getDir() . DIRECTORY_SEPARATOR . $this->configuration->getOutputFolder() . DIRECTORY_SEPARATOR . $definition['class'] . '.php';
     $consts = Helper::createStringConstants($data);
     $node = $this->createClassFromData($definition['class'], $this->configuration->getNamespace(), $consts);
     $prettyPrinter = new PrettyPrinter\Standard();
     file_put_contents($output, $prettyPrinter->prettyPrintFile([$node]));
 }
开发者ID:DTForce,项目名称:resman,代码行数:16,代码来源:ConstantGenerator.php

示例9: generateFileContentForArray

 /**
  * @param array $items
  * @return string
  */
 private function generateFileContentForArray(array $items)
 {
     $nodes = [];
     foreach ($items as $key => $value) {
         $key = is_int($key) ? new LNumber($key) : new String_($key);
         $value = new String_($value);
         $node = new ArrayItem($value, $key);
         array_push($nodes, $node);
     }
     $statements = [new Return_(new Array_($nodes))];
     $printer = new Standard();
     return $printer->prettyPrintFile($statements);
 }
开发者ID:nick-jones,项目名称:php-ucd,代码行数:17,代码来源:PHPFile.php

示例10: renameConflicts

 /** @inheritdoc */
 public function renameConflicts(array $conflicts)
 {
     $replacements = [];
     $this->traverser->addVisitor($this->reNamer);
     foreach ($conflicts as $package => $types) {
         foreach ($types as $type => $versions) {
             foreach ($versions as $version => $files) {
                 $composer = $this->reader->setPackage($package)->setVersion($version)->getComposerObject();
                 if ($this->hasNs($type)) {
                     $split = $this->splitNsandClass($type);
                     $fromNs = $split['ns'];
                     $psrNs = $this->getPsrNs($composer, $fromNs);
                     $toNs = $psrNs . $this->sanitizeVersionNo($version);
                     $diff = str_replace($psrNs, '', $fromNs);
                     if ($psrNs != $diff . '\\') {
                         $toNs = $toNs . '\\' . $diff;
                     }
                     $newFullyQualifiedType = $toNs . '\\' . $split['class'];
                 } else {
                     $fromNs = $type;
                     $toNs = $type . '_' . $this->sanitizeVersionNo($version);
                     $newFullyQualifiedType = $toNs;
                 }
                 $this->reNamer->rename($fromNs, $toNs);
                 $replacements[] = ['package' => $package, 'version' => $version, 'originalFullyQualifiedType' => $type, 'originalNamespace' => $fromNs, 'newFullyQualifiedType' => $newFullyQualifiedType, 'newNamespace' => $toNs, 'replacedIn' => $files];
                 foreach ($files as $file) {
                     $fullPath = $this->vendorDir . '/' . $package . '/' . $version . '/' . $file;
                     $src = $this->filesystem->read($fullPath);
                     $ast = $this->parser->parse($src);
                     $newAst = $this->traverser->traverse($ast);
                     $code = $this->prettyPrinter->prettyPrintFile($newAst);
                     $this->filesystem->update($fullPath, $code);
                 }
             }
         }
     }
     $this->traverser->removeVisitor($this->reNamer);
     return $replacements;
 }
开发者ID:brad-jones,项目名称:ppm,代码行数:40,代码来源:PackageReNamer.php

示例11: saveCode

 public function saveCode($stmts)
 {
     $parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7);
     $prettyPrinter = new PrettyPrinter\Standard();
     try {
         $code = $prettyPrinter->prettyPrintFile($stmts);
     } catch (Error $e) {
         echo 'Parse Error: ', $e->getMessage();
     }
     if (!file_exists('src\\' . $this->restDir)) {
         mkdir('src\\' . $this->restDir, '755', true);
     }
     file_put_contents($this->restPath, $code);
 }
开发者ID:softfly,项目名称:GeneratorBundle,代码行数:14,代码来源:RestClass.php

示例12: addNamespacePrefix

 /**
  * @param $content
  * @param $prefix
  *
  * @return string
  */
 public function addNamespacePrefix($content, $prefix)
 {
     $traverser = new NodeTraverser();
     $traverser->addVisitor(new NamespaceScoperNodeVisitor($prefix));
     $traverser->addVisitor(new UseNamespaceScoperNodeVisitor($prefix));
     $traverser->addVisitor(new FullyQualifiedNamespaceUseScoperNodeVisitor($prefix));
     try {
         $statements = $this->parser->parse($content);
     } catch (Error $error) {
         throw new ParsingException($error->getMessage());
     }
     $statements = $traverser->traverse($statements);
     $prettyPrinter = new Standard();
     return $prettyPrinter->prettyPrintFile($statements) . "\n";
 }
开发者ID:belanur,项目名称:php-scoper,代码行数:21,代码来源:Scoper.php

示例13: applyPatch

 /**
  * @param Patch $patch
  * @param string $code
  * @return string
  */
 private function applyPatch(Patch $patch, $code)
 {
     $statements = $this->parser->parse($code);
     foreach ($patch->getModifiers() as $modifier) {
         if ($modifier instanceof CodeInsertion) {
             $statements = $this->applyCodeInsertion($modifier, $statements);
             continue;
         }
         if (is_callable($modifier)) {
             $statements = $modifier($statements);
             continue;
         }
     }
     return $this->printer->prettyPrintFile($statements);
 }
开发者ID:php-school,项目名称:php-workshop,代码行数:20,代码来源:CodePatcher.php

示例14: createClass

 /**
  * Function to put routes in PHP Classes
  * @return type
  */
 private function createClass()
 {
     $fs = new Filesystem();
     $directory = $this->getPathPHP();
     $path = $this->getPathClass();
     if (!$fs->exists($directory)) {
         $fs->mkdir($directory);
     }
     $routes = $this->routes;
     $factory = new BuilderFactory();
     $node = $factory->namespace('Route')->addStmt($factory->class('RouteArray')->addStmt($factory->property('_routes')->makePrivate()->setDefault($routes))->addStmt($factory->method('getRoutes')->makePublic()->addStmt(new Node\Stmt\Return_(new Node\Expr\Variable('this->_routes')))))->getNode();
     $stmts = array($node);
     $prettyPrinter = new PrettyPrinter\Standard();
     $php = $prettyPrinter->prettyPrintFile($stmts);
     file_put_contents($path, $php);
 }
开发者ID:kletellier,项目名称:mvc,代码行数:20,代码来源:RouteArray.php

示例15: sample

 public function sample()
 {
     $factory = new BuilderFactory();
     $node = $factory->namespace('name\\space')->addStmt($factory->class('Sample')->addStmt($factory->property('string')->makeProtected()->setDocComment('/**
                           * @var string String
                           */'))->addStmt($factory->method('get')->makePublic()->setDocComment('/**
                           * Return string
                           *
                           * @return string String
                           */')->addStmt(new Node\Stmt\Return_(new Node\Expr\Variable('this->string'))))->addStmt($factory->method('set')->makePublic()->setDocComment('/**
                           * Set string
                           *
                           * @param string $string String
                           * @return $this
                           */')->addParam(new Node\Param('string'))->addStmt(new Node\Name('$this->string = $string;'))->addStmt(new Node\Stmt\Return_(new Node\Expr\Variable('this')))))->getNode();
     $stmts = array($node);
     $prettyPrinter = new PrettyPrinter\Standard();
     $code = $prettyPrinter->prettyPrintFile($stmts);
     file_put_contents('tmp/origin/PHPParser.php', (string) $code);
 }
开发者ID:Big-Shark,项目名称:test-php-code-generators,代码行数:20,代码来源:PHPParser.php


注:本文中的PhpParser\PrettyPrinter\Standard::prettyPrintFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。