for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace gossi\codegen\parser\visitor;
use gossi\codegen\parser\visitor\parts\StructParserPart;
use PhpParser\Node\Stmt\Class_;
class ClassParserVisitor extends StructParserVisitor {
use StructParserPart;
public function visitClass(Class_ $node) {
$struct = $this->getStruct();
if ($node->extends !== null) {
if ($node->extends->getType() === 'Name_FullyQualified') {
$struct->setParentClassName('\\' . implode('\\', $node->extends->parts));
} else {
$struct->setParentClassName(implode('\\', $node->extends->parts));
}
foreach ($node->implements as $interface) {
if ($interface->getType() === 'Name_FullyQualified') {
$struct->addInterface('\\' . implode('\\', $interface->parts));
$struct->addInterface(implode('\\', $interface->parts));
$struct->setAbstract($node->isAbstract());
$struct->setFinal($node->isFinal());