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\NodeFactory; use PhpParser\Node..
Decoded Output download
<?php
declare (strict_types=1);
namespace Rector\Symfony\NodeFactory;
use PhpParser\Node\Expr\Assign;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\Variable;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Expression;
use Rector\NodeAnalyzer\ParamAnalyzer;
use Rector\NodeNameResolver\NodeNameResolver;
final class OnLogoutClassMethodFactory
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Symfony\NodeFactory\BareLogoutClassMethodFactory
*/
private $bareLogoutClassMethodFactory;
/**
* @readonly
* @var \Rector\NodeAnalyzer\ParamAnalyzer
*/
private $paramAnalyzer;
/**
* @var array<string, string>
*/
private const PARAMETER_TO_GETTER_NAMES = ['request' => 'getRequest', 'response' => 'getResponse', 'token' => 'getToken'];
public function __construct(NodeNameResolver $nodeNameResolver, \Rector\Symfony\NodeFactory\BareLogoutClassMethodFactory $bareLogoutClassMethodFactory, ParamAnalyzer $paramAnalyzer)
{
$this->nodeNameResolver = $nodeNameResolver;
$this->bareLogoutClassMethodFactory = $bareLogoutClassMethodFactory;
$this->paramAnalyzer = $paramAnalyzer;
}
public function createFromLogoutClassMethod(ClassMethod $logoutClassMethod) : ClassMethod
{
$classMethod = $this->bareLogoutClassMethodFactory->create();
$assignStmts = $this->createAssignStmtFromOldClassMethod($logoutClassMethod);
$classMethod->stmts = \array_merge($assignStmts, (array) $logoutClassMethod->stmts);
return $classMethod;
}
/**
* @return Stmt[]
*/
private function createAssignStmtFromOldClassMethod(ClassMethod $onLogoutSuccessClassMethod) : array
{
$usedParams = $this->resolveUsedParams($onLogoutSuccessClassMethod);
return $this->createAssignStmts($usedParams);
}
/**
* @return Param[]
*/
private function resolveUsedParams(ClassMethod $logoutClassMethod) : array
{
$usedParams = [];
foreach ($logoutClassMethod->params as $oldParam) {
if (!$this->paramAnalyzer->isParamUsedInClassMethod($logoutClassMethod, $oldParam)) {
continue;
}
$usedParams[] = $oldParam;
}
return $usedParams;
}
/**
* @param Param[] $params
* @return Expression[]
*/
private function createAssignStmts(array $params) : array
{
$logoutEventVariable = new Variable('logoutEvent');
$assignStmts = [];
foreach ($params as $param) {
foreach (self::PARAMETER_TO_GETTER_NAMES as $parameterName => $getterName) {
if (!$this->nodeNameResolver->isName($param, $parameterName)) {
continue;
}
$assign = new Assign($param->var, new MethodCall($logoutEventVariable, $getterName));
$assignStmts[] = new Expression($assign);
}
}
return $assignStmts;
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare (strict_types=1);
namespace Rector\Symfony\NodeFactory;
use PhpParser\Node\Expr\Assign;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\Variable;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Expression;
use Rector\NodeAnalyzer\ParamAnalyzer;
use Rector\NodeNameResolver\NodeNameResolver;
final class OnLogoutClassMethodFactory
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Symfony\NodeFactory\BareLogoutClassMethodFactory
*/
private $bareLogoutClassMethodFactory;
/**
* @readonly
* @var \Rector\NodeAnalyzer\ParamAnalyzer
*/
private $paramAnalyzer;
/**
* @var array<string, string>
*/
private const PARAMETER_TO_GETTER_NAMES = ['request' => 'getRequest', 'response' => 'getResponse', 'token' => 'getToken'];
public function __construct(NodeNameResolver $nodeNameResolver, \Rector\Symfony\NodeFactory\BareLogoutClassMethodFactory $bareLogoutClassMethodFactory, ParamAnalyzer $paramAnalyzer)
{
$this->nodeNameResolver = $nodeNameResolver;
$this->bareLogoutClassMethodFactory = $bareLogoutClassMethodFactory;
$this->paramAnalyzer = $paramAnalyzer;
}
public function createFromLogoutClassMethod(ClassMethod $logoutClassMethod) : ClassMethod
{
$classMethod = $this->bareLogoutClassMethodFactory->create();
$assignStmts = $this->createAssignStmtFromOldClassMethod($logoutClassMethod);
$classMethod->stmts = \array_merge($assignStmts, (array) $logoutClassMethod->stmts);
return $classMethod;
}
/**
* @return Stmt[]
*/
private function createAssignStmtFromOldClassMethod(ClassMethod $onLogoutSuccessClassMethod) : array
{
$usedParams = $this->resolveUsedParams($onLogoutSuccessClassMethod);
return $this->createAssignStmts($usedParams);
}
/**
* @return Param[]
*/
private function resolveUsedParams(ClassMethod $logoutClassMethod) : array
{
$usedParams = [];
foreach ($logoutClassMethod->params as $oldParam) {
if (!$this->paramAnalyzer->isParamUsedInClassMethod($logoutClassMethod, $oldParam)) {
continue;
}
$usedParams[] = $oldParam;
}
return $usedParams;
}
/**
* @param Param[] $params
* @return Expression[]
*/
private function createAssignStmts(array $params) : array
{
$logoutEventVariable = new Variable('logoutEvent');
$assignStmts = [];
foreach ($params as $param) {
foreach (self::PARAMETER_TO_GETTER_NAMES as $parameterName => $getterName) {
if (!$this->nodeNameResolver->isName($param, $parameterName)) {
continue;
}
$assign = new Assign($param->var, new MethodCall($logoutEventVariable, $getterName));
$assignStmts[] = new Expression($assign);
}
}
return $assignStmts;
}
}
Function Calls
None |
Stats
MD5 | 8a47ec12598b162cf7ad91920e162c69 |
Eval Count | 0 |
Decode Time | 110 ms |