PHPCompiler\Backend\PHP7\PECL::compileClass PHP Method

compileClass() protected method

protected compileClass ( Class_ $class )
$class PHPCfg\Op\Stmt\Class_
    protected function compileClass(Op\Stmt\Class_ $class)
    {
        $classId = count($this->state->classEntries) + 1;
        $name = explode("\\", $class->name->value);
        $className = array_pop($name);
        $ns = implode("\\", $name);
        $props = [];
        foreach ($class->stmts->children as $stmt) {
            switch ($stmt->getType()) {
                case 'Stmt_Property':
                    $props[] = ["name" => $stmt->name->value, "default" => $stmt->defaultVar, "ctype" => $this->mapToCType($stmt->type), "typeInfo" => $this->getTypeInfo($this->mapToCType($stmt->type))];
                    break;
                default:
                    throw new \LogicException("Unknown class statment type: " . $stmt->getType());
            }
        }
        $this->state->classEntries[] = ["name" => $className, "ns" => $ns, "id" => $classId, "methods" => [], "properties" => $props];
    }