Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare (strict_types=1); namespace Rector\Symfony\NodeAnalyzer\Annotations; use P..
Decoded Output download
<?php
declare (strict_types=1);
namespace Rector\Symfony\NodeAnalyzer\Annotations;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\New_;
use PhpParser\Node\Stmt;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Symfony\NodeFactory\Annotations\DoctrineAnnotationFromNewFactory;
use Rector\Symfony\ValueObject\ValidatorAssert\PropertyAndAnnotation;
final class PropertyAnnotationAssertResolver
{
/**
* @readonly
* @var \Rector\PhpParser\Node\Value\ValueResolver
*/
private $valueResolver;
/**
* @readonly
* @var \Rector\Symfony\NodeFactory\Annotations\DoctrineAnnotationFromNewFactory
*/
private $doctrineAnnotationFromNewFactory;
/**
* @readonly
* @var \Rector\Symfony\NodeAnalyzer\Annotations\StmtMethodCallMatcher
*/
private $stmtMethodCallMatcher;
public function __construct(ValueResolver $valueResolver, DoctrineAnnotationFromNewFactory $doctrineAnnotationFromNewFactory, \Rector\Symfony\NodeAnalyzer\Annotations\StmtMethodCallMatcher $stmtMethodCallMatcher)
{
$this->valueResolver = $valueResolver;
$this->doctrineAnnotationFromNewFactory = $doctrineAnnotationFromNewFactory;
$this->stmtMethodCallMatcher = $stmtMethodCallMatcher;
}
public function resolve(Stmt $stmt) : ?PropertyAndAnnotation
{
$methodCall = $this->stmtMethodCallMatcher->match($stmt, 'addPropertyConstraint');
if (!$methodCall instanceof MethodCall) {
return null;
}
$args = $methodCall->getArgs();
$constraintsExpr = $args[1]->value;
$propertyName = $this->valueResolver->getValue($args[0]->value);
if (!\is_string($propertyName)) {
return null;
}
if (!$constraintsExpr instanceof New_) {
// nothing we can do... or can we?
return null;
}
$doctrineAnnotationTagValueNode = $this->doctrineAnnotationFromNewFactory->create($constraintsExpr);
return new PropertyAndAnnotation($propertyName, $doctrineAnnotationTagValueNode);
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare (strict_types=1);
namespace Rector\Symfony\NodeAnalyzer\Annotations;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\New_;
use PhpParser\Node\Stmt;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Symfony\NodeFactory\Annotations\DoctrineAnnotationFromNewFactory;
use Rector\Symfony\ValueObject\ValidatorAssert\PropertyAndAnnotation;
final class PropertyAnnotationAssertResolver
{
/**
* @readonly
* @var \Rector\PhpParser\Node\Value\ValueResolver
*/
private $valueResolver;
/**
* @readonly
* @var \Rector\Symfony\NodeFactory\Annotations\DoctrineAnnotationFromNewFactory
*/
private $doctrineAnnotationFromNewFactory;
/**
* @readonly
* @var \Rector\Symfony\NodeAnalyzer\Annotations\StmtMethodCallMatcher
*/
private $stmtMethodCallMatcher;
public function __construct(ValueResolver $valueResolver, DoctrineAnnotationFromNewFactory $doctrineAnnotationFromNewFactory, \Rector\Symfony\NodeAnalyzer\Annotations\StmtMethodCallMatcher $stmtMethodCallMatcher)
{
$this->valueResolver = $valueResolver;
$this->doctrineAnnotationFromNewFactory = $doctrineAnnotationFromNewFactory;
$this->stmtMethodCallMatcher = $stmtMethodCallMatcher;
}
public function resolve(Stmt $stmt) : ?PropertyAndAnnotation
{
$methodCall = $this->stmtMethodCallMatcher->match($stmt, 'addPropertyConstraint');
if (!$methodCall instanceof MethodCall) {
return null;
}
$args = $methodCall->getArgs();
$constraintsExpr = $args[1]->value;
$propertyName = $this->valueResolver->getValue($args[0]->value);
if (!\is_string($propertyName)) {
return null;
}
if (!$constraintsExpr instanceof New_) {
// nothing we can do... or can we?
return null;
}
$doctrineAnnotationTagValueNode = $this->doctrineAnnotationFromNewFactory->create($constraintsExpr);
return new PropertyAndAnnotation($propertyName, $doctrineAnnotationTagValueNode);
}
}
Function Calls
None |
Stats
MD5 | 31d27b6b22c3ec92678e8a3227f0a252 |
Eval Count | 0 |
Decode Time | 79 ms |