Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ClassCodeGenerator.php

function ClassCodeGenerator::generate

Generates PHP code for class node.

Parameters

string $classname:

Node\ClassNode $class:

Return value

string

File

vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php, line 36

Class

ClassCodeGenerator
Class code creator. Generates PHP code for specific class node tree.

Namespace

Prophecy\Doubler\Generator

Code

public function generate($classname, Node\ClassNode $class) {
    $parts = explode('\\', $classname);
    $classname = array_pop($parts);
    $namespace = implode('\\', $parts);
    $code = sprintf("%sclass %s extends \\%s implements %s {\n", $class->isReadOnly() ? 'readonly ' : '', $classname, $class->getParentClass(), implode(', ', array_map(function ($interface) {
        return '\\' . $interface;
    }, $class->getInterfaces())));
    foreach ($class->getProperties() as $name => $visibility) {
        $code .= sprintf("%s \$%s;\n", $visibility, $name);
    }
    $code .= "\n";
    foreach ($class->getMethods() as $method) {
        $code .= $this->generateMethod($method) . "\n";
    }
    $code .= "\n}";
    return sprintf("namespace %s {\n%s\n}", $namespace, $code);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal