19 declare(strict_types=1);
32 protected \Rector\Transform\NodeTypeAnalyzer\TypeProvidingExprFromClassResolver
$type_resolver;
34 protected \Rector\PostRector\Collector\PropertyToAddCollector
$poperty_adder;
35 protected \Rector\Core\NodeManipulator\ClassInsertManipulator
$class_insert;
45 \
ILIAS\
CI\Rector\
DIC\DICMemberResolver $dic_member_resolver,
46 \Rector\Transform\NodeTypeAnalyzer\TypeProvidingExprFromClassResolver $typre_resolver,
47 \Rector\Core\NodeManipulator\ClassDependencyManipulator $classDependencyManipulator,
48 \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector,
49 \Rector\Core\NodeManipulator\ClassInsertManipulator $class_insert
52 $this->type_resolver = $typre_resolver;
53 $this->class_dependecied = $classDependencyManipulator;
54 $this->poperty_adder = $propertyToAddCollector;
60 return [\PhpParser\Node\Expr\StaticCall::class];
63 private function isApplicable(Node $node):
bool 66 if (!$node->class instanceof \PhpParser\Node\Name) {
69 $staticCallClassName = $node->class->toString();
70 if ($staticCallClassName !== \ilUtil::class) {
74 if (!$node->name instanceof \PhpParser\Node\Identifier) {
79 return in_array($node->name->name, $this->old_method_names);
87 if (!$this->isApplicable($node)) {
90 $class_where_call_happens = $this->betterNodeFinder->findParentType(
92 \PhpParser\Node\Stmt\Class_::class
94 if (!$class_where_call_happens instanceof \PhpParser\Node\Stmt\Class_) {
98 $method_where_call_happend = $this->betterNodeFinder->findParentType(
100 \PhpParser\Node\Stmt\ClassMethod::class
102 if (!$method_where_call_happend instanceof \PhpParser\Node\Stmt\ClassMethod) {
107 if ($method_where_call_happend->isStatic()) {
112 $message_type = strtolower(str_replace(
'send',
'', $node->name->name));
113 $first_argument = $this->nodeFactory->createArg($message_type);
114 $arguments = $node->args;
115 array_unshift($arguments, $first_argument);
119 $dicPropertyFetch = $this->dic_member_resolver->ensureDICDependency(
121 $class_where_call_happens,
122 $method_where_call_happend
124 }
catch (ShouldNotHappenException
$e) {
125 throw new ShouldNotHappenException(
126 "Could not process " . $this->file->getFilePath() .
': ' . $e->getMessage()
128 echo
"Could not process " . $this->file->getFilePath() .
': ' . $e->getMessage();
134 $methodCall = new \PhpParser\Node\Expr\MethodCall(
136 $this->new_method_name,
144 return new RuleDefinition(
'lorem', [
146 "\ilUtil::sendQuestion('my_text', true);",
147 "\$this->main_tpl->setOnScreenMessage('question', 'my_text', true)" This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider .
Rector Core NodeManipulator ClassDependencyManipulator $class_dependecied
__construct(\ILIAS\CI\Rector\DIC\DICMemberResolver $dic_member_resolver, \Rector\Transform\NodeTypeAnalyzer\TypeProvidingExprFromClassResolver $typre_resolver, \Rector\Core\NodeManipulator\ClassDependencyManipulator $classDependencyManipulator, \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector, \Rector\Core\NodeManipulator\ClassInsertManipulator $class_insert)
ILIAS CI Rector DIC DICMemberResolver $dic_member_resolver
Rector PostRector Collector PropertyToAddCollector $poperty_adder
Rector Transform NodeTypeAnalyzer TypeProvidingExprFromClassResolver $type_resolver
Rector Core NodeManipulator ClassInsertManipulator $class_insert