| Server IP : 68.178.247.200 / Your IP : 216.73.216.62 Web Server : Apache System : Linux p3plzcpnl489463.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64 User : x9dppmxs4rgd ( 8559391) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/vendor/rector/rector/src/Comments/NodeDocBlock/ |
Upload File : |
<?php
declare (strict_types=1);
namespace Rector\Comments\NodeDocBlock;
use PhpParser\Comment;
use PhpParser\Comment\Doc;
use PhpParser\Node;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\Printer\PhpDocInfoPrinter;
use Rector\NodeTypeResolver\Node\AttributeKey;
final class DocBlockUpdater
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Printer\PhpDocInfoPrinter
*/
private $phpDocInfoPrinter;
public function __construct(PhpDocInfoPrinter $phpDocInfoPrinter)
{
$this->phpDocInfoPrinter = $phpDocInfoPrinter;
}
public function updateRefactoredNodeWithPhpDocInfo(Node $node) : void
{
// nothing to change? don't save it
$phpDocInfo = $node->getAttribute(AttributeKey::PHP_DOC_INFO);
if (!$phpDocInfo instanceof PhpDocInfo) {
return;
}
$phpDocNode = $phpDocInfo->getPhpDocNode();
if ($phpDocNode->children === []) {
$this->setCommentsAttribute($node);
return;
}
$printedPhpDoc = $this->printPhpDocInfoToString($phpDocInfo);
$node->setDocComment(new Doc($printedPhpDoc));
}
private function setCommentsAttribute(Node $node) : void
{
$comments = \array_filter($node->getComments(), static function (Comment $comment) : bool {
return !$comment instanceof Doc;
});
$node->setAttribute(AttributeKey::COMMENTS, $comments);
}
private function printPhpDocInfoToString(PhpDocInfo $phpDocInfo) : string
{
if ($phpDocInfo->isNewNode()) {
return $this->phpDocInfoPrinter->printNew($phpDocInfo);
}
return $this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo);
}
}