Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / nikic / php-parser / doc / 4_Code_generation.markdown
diff --git a/vendor/nikic/php-parser/doc/4_Code_generation.markdown b/vendor/nikic/php-parser/doc/4_Code_generation.markdown
deleted file mode 100644 (file)
index 2c0aa0e..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-Code generation
-===============
-
-It is also possible to generate code using the parser, by first creating an Abstract Syntax Tree and then using the
-pretty printer to convert it to PHP code. To simplify code generation, the project comes with builders which allow
-creating node trees using a fluid interface, instead of instantiating all nodes manually. Builders are available for
-the following syntactic elements:
-
- * namespaces and use statements
- * classes, interfaces and traits
- * methods, functions and parameters
- * properties
-
-Here is an example:
-
-```php
-use PhpParser\BuilderFactory;
-use PhpParser\PrettyPrinter;
-use PhpParser\Node;
-
-$factory = new BuilderFactory;
-$node = $factory->namespace('Name\Space')
-    ->addStmt($factory->use('Some\Other\Thingy')->as('SomeOtherClass'))
-    ->addStmt($factory->class('SomeClass')
-        ->extend('SomeOtherClass')
-        ->implement('A\Few', '\Interfaces')
-        ->makeAbstract() // ->makeFinal()
-
-        ->addStmt($factory->method('someMethod')
-            ->makePublic()
-            ->makeAbstract() // ->makeFinal()
-            ->setReturnType('bool')
-            ->addParam($factory->param('someParam')->setTypeHint('SomeClass'))
-            ->setDocComment('/**
-                              * This method does something.
-                              *
-                              * @param SomeClass And takes a parameter
-                              */')
-        )
-
-        ->addStmt($factory->method('anotherMethod')
-            ->makeProtected() // ->makePublic() [default], ->makePrivate()
-            ->addParam($factory->param('someParam')->setDefault('test'))
-            // it is possible to add manually created nodes
-            ->addStmt(new Node\Expr\Print_(new Node\Expr\Variable('someParam')))
-        )
-
-        // properties will be correctly reordered above the methods
-        ->addStmt($factory->property('someProperty')->makeProtected())
-        ->addStmt($factory->property('anotherProperty')->makePrivate()->setDefault(array(1, 2, 3)))
-    )
-
-    ->getNode()
-;
-
-$stmts = array($node);
-$prettyPrinter = new PrettyPrinter\Standard();
-echo $prettyPrinter->prettyPrintFile($stmts);
-```
-
-This will produce the following output with the standard pretty printer:
-
-```php
-<?php
-
-namespace Name\Space;
-
-use Some\Other\Thingy as SomeClass;
-abstract class SomeClass extends SomeOtherClass implements A\Few, \Interfaces
-{
-    protected $someProperty;
-    private $anotherProperty = array(1, 2, 3);
-    /**
-     * This method does something.
-     *
-     * @param SomeClass And takes a parameter
-     */
-    public abstract function someMethod(SomeClass $someParam) : bool;
-    protected function anotherMethod($someParam = 'test')
-    {
-        print $someParam;
-    }
-}
-```