开始代码打包

This commit is contained in:
2022-11-02 13:38:49 +08:00
parent c3b8c93376
commit f4c00c97ca
7 changed files with 379 additions and 4 deletions

View File

@@ -0,0 +1,61 @@
<?php
namespace app\common\class\phpparser;
use PhpParser\Comment;
use PhpParser\Node;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\TraitUseAdaptation\Alias;
use PhpParser\Node\Stmt\Use_;
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitorAbstract;
class NodeVisitor extends NodeVisitorAbstract
{
protected $cmd;
protected $name;
public function __construct($cmd, $name)
{
$this->cmd = $cmd;
$this->name = $name;
}
public function leaveNode(Node $node)
{
if ($node instanceof Use_) {
// $this->cmd->addUsedClass($node);
// return NodeTraverser::REMOVE_NODE;
foreach ($node->uses as &$use_item) {
$name = 'class';
$name .= md5($this->name);
$name .= md5(end($use_item->name->parts));
$use_item->alias = new Identifier($name);
}
}else if ($node instanceof Class_){
if(!empty($node->extends)){
$name = 'class';
$name .= md5($this->name);
$name .= md5(end($node->extends->parts));
$node->extends = new Name($name);
}
}
return null;
}
}