19 declare(strict_types=1);
40 protected \
ILIAS\
CI\Rector\
DIC\DICMemberResolver $dicMemberResolver,
41 protected \Rector\Transform\NodeTypeAnalyzer\TypeProvidingExprFromClassResolver $typeProvidingExprFromClassResolver,
42 protected \Rector\Core\NodeManipulator\ClassDependencyManipulator $classDependencyManipulator,
43 protected \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector,
44 protected \Rector\Core\NodeManipulator\ClassInsertManipulator $classInsertManipulator
53 return [\PhpParser\Node\Expr\StaticCall::class];
56 private function isApplicable(Node $node):
bool 59 if (!$node->class instanceof \PhpParser\Node\Name) {
62 $staticCallClassName = $node->class->toString();
63 if ($staticCallClassName !== \ilUtil::class) {
67 if (!$node->name instanceof \PhpParser\Node\Identifier) {
72 return in_array($node->name->name, $this->old_method_names);
78 public function refactor(Node $node): ?\PhpParser\Node\Expr\MethodCall
80 if (!$this->isApplicable($node)) {
83 $class_where_call_happens = $this->betterNodeFinder->findParentType(
85 \PhpParser\Node\Stmt\Class_::class
87 if (!$class_where_call_happens instanceof \PhpParser\Node\Stmt\Class_) {
91 $method_where_call_happend = $this->betterNodeFinder->findParentType(
93 \PhpParser\Node\Stmt\ClassMethod::class
95 if (!$method_where_call_happend instanceof \PhpParser\Node\Stmt\ClassMethod) {
100 if ($method_where_call_happend->isStatic()) {
105 $message_type = strtolower(str_replace(
'send',
'', $node->name->name));
106 $arg = $this->nodeFactory->createArg($message_type);
107 $arguments = $node->args;
108 array_unshift($arguments, $arg);
112 $dicPropertyFetch = $this->dicMemberResolver->ensureDICDependency(
114 $class_where_call_happens,
115 $method_where_call_happend
117 }
catch (ShouldNotHappenException
$e) {
118 throw new ShouldNotHappenException(
119 "Could not process " . $this->file->getFilePath() .
': ' . $e->getMessage()
124 $methodCall = new \PhpParser\Node\Expr\MethodCall(
126 $this->new_method_name,
134 return new RuleDefinition(
'lorem', [
136 "\ilUtil::sendQuestion('my_text', true);",
137 "\$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 .
__construct(protected \ILIAS\CI\Rector\DIC\DICMemberResolver $dicMemberResolver, protected \Rector\Transform\NodeTypeAnalyzer\TypeProvidingExprFromClassResolver $typeProvidingExprFromClassResolver, protected \Rector\Core\NodeManipulator\ClassDependencyManipulator $classDependencyManipulator, protected \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector, protected \Rector\Core\NodeManipulator\ClassInsertManipulator $classInsertManipulator)