Skip to content
Snippets Groups Projects
Commit 6417e79a authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by Jan-Hendrik Willms
Browse files

more rector expirements

parent 15681772
No related branches found
No related tags found
1 merge request!9Draft: Rector
......@@ -2,8 +2,6 @@
declare(strict_types=1);
require_once __DIR__ . '/resources/rectors/rules/ReplaceConfigFunctionWithClassMethodRector.php';
use Rector\Core\Configuration\Option;
use Rector\Core\ValueObject\PhpVersion;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
......@@ -36,7 +34,8 @@ return static function (ContainerConfigurator $containerConfigurator): void
$parameters->set(Option::PHPSTAN_FOR_RECTOR_PATH, __DIR__ . '/phpstan.neon');
$parameters->set(Option::PATHS, [
getcwd() . '/db/migrations',
getcwd() . '/app/controllers',
// getcwd() . '/db/migrations',
getcwd() . '/lib',
getcwd() . '/public/plugins_packages/core',
]);
......
<?php
namespace Studip\Rectors;
use PhpParser\Node;
use PhpParser\Node\Expr\Include_;
use Rector\Core\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
final class RemoveIncludeOfDefaultControllersRector extends AbstractRector
{
public function getRuleDefinition(): RuleDefinition
{
return new RuleDefinition('Remove includes/requires of default controllers', [
new CodeSample(
'require \'app/controllers/studip_controller.php\';',
''
)
]);
}
public function getNodeTypes(): array
{
return [Include_::class];
}
/**
* @param Include_ $node
*/
public function refactor(Node $node)
{
if ($node->expr instanceof Node\Scalar\String_ && $this->isDefaultController($node->expr)) {
$this->removeNode($node);
return null;
}
return null;
}
private function isDefaultController(Node\Scalar\String_ $string): bool
{
return strpos($string->value, 'studip_controller') !== false;
}
}
......@@ -2,10 +2,42 @@
declare (strict_types=1);
namespace Studip\Rectors\Sets;
require_once __DIR__ . '/../rules/RemoveIncludeOfDefaultControllersRector.php';
require_once __DIR__ . '/../rules/ReplaceConfigFunctionWithClassMethodRector.php';
use Range;
use Rector\Renaming\Rector\FuncCall\RenameFunctionRector;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\ValueObject\MethodCallRename;
use Studip\Rectors\RemoveIncludeOfDefaultControllersRector;
use Studip\Rectors\ReplaceConfigFunctionWithClassMethodRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator) : void {
$services = $containerConfigurator->services();
$services->set(ReplaceConfigFunctionWithClassMethodRector::class);
$services->set(RemoveIncludeOfDefaultControllersRector::class);
$services->set(RenameMethodRector::class)->call('configure', [
[
RenameMethodRector::METHOD_CALL_RENAMES => ValueObjectInliner::inline([
new MethodCallRename(Range::class, 'userMayAccessRange', 'isAccessibleToUser')
]),
],
[
RenameMethodRector::METHOD_CALL_RENAMES => ValueObjectInliner::inline([
new MethodCallRename(Range::class, 'userMayEditRange', 'isEditableByUser')
]),
],
]);
$services->set(RenameFunctionRector::class)->call('configure', [
[
RenameFunctionRector::OLD_FUNCTION_TO_NEW_FUNCTION => [
'studip_utf8decode' => 'utf8_decode',
'studip_utf8encode' => 'utf8_encode',
'studip_json_decode' => 'json_decode', // Second parameter must be true?
'studip_json_encode' => 'json_encode',
]
]
]);
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment