Create new parameter method_if_no_args, fix transforming back() function, add back file to test cases

https://github.com/rectorphp/rector/issues/1824
This commit is contained in:
sashabeton 2019-08-12 14:49:34 +03:00
parent 3c63fe10c3
commit 9806f6c564
3 changed files with 22 additions and 6 deletions

View File

@ -107,6 +107,7 @@ final class HelperFunctionToConstructorInjectionRector extends AbstractRector
'type' => 'Illuminate\Routing\Redirector',
'property' => 'redirector',
'method_if_args' => 'back',
'method_if_no_args' => 'back',
],
'broadcast' => [
'type' => 'Illuminate\Contracts\Broadcasting\Factory',
@ -231,6 +232,10 @@ CODE_SAMPLE
$propertyFetchNode = $this->createPropertyFetch('this', $service['property']);
if (count($node->args) === 0) {
if (isset($service['method_if_no_args'])) {
return new MethodCall($propertyFetchNode, $service['method_if_no_args'], $node->args);
}
return $propertyFetchNode;
}

View File

@ -6,7 +6,12 @@ class SomeBackController
{
public function action()
{
return back('template.blade');
return back();
}
public function actionWithParams()
{
return back(200);
}
}
@ -19,16 +24,21 @@ namespace Rector\Laravel\Tests\Rector\FuncCall\HelperFunctionToConstructorInject
class SomeBackController
{
/**
* @var \Illuminate\Routing\UrlGenerator
* @var \Illuminate\Routing\Redirector
*/
private $urlGenerator;
public function __construct(\Illuminate\Routing\UrlGenerator $urlGenerator)
private $redirector;
public function __construct(\Illuminate\Routing\Redirector $redirector)
{
$this->urlGenerator = $urlGenerator;
$this->redirector = $redirector;
}
public function action()
{
return $this->urlGenerator->route('template.blade');
return $this->redirector->back();
}
public function actionWithParams()
{
return $this->redirector->back(200);
}
}

View File

@ -14,6 +14,7 @@ final class HelperFunctionToConstructorInjectionRectorTest extends AbstractRecto
__DIR__ . '/Fixture/broadcast.php.inc',
__DIR__ . '/Fixture/session.php.inc',
__DIR__ . '/Fixture/route.php.inc',
__DIR__ . '/Fixture/back.php.inc',
]);
}