From 9b6fd20728aef64a3ce1bbf38b13948d3ac1994a Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 13 Dec 2024 15:21:32 +0100
Subject: [PATCH] add page_close() to sess()->save() rector

---
 lib/Rectors/Studip-6.0-Set.php                |  1 +
 .../Studip60/ReplacePageCloseRector.php       | 27 +++++++++++++++++++
 rector-test.php                               |  2 ++
 3 files changed, 30 insertions(+)
 create mode 100644 lib/Rectors/Studip60/ReplacePageCloseRector.php

diff --git a/lib/Rectors/Studip-6.0-Set.php b/lib/Rectors/Studip-6.0-Set.php
index 438e794ac1d..abefd25fe65 100644
--- a/lib/Rectors/Studip-6.0-Set.php
+++ b/lib/Rectors/Studip-6.0-Set.php
@@ -10,6 +10,7 @@ return RectorConfig::configure()
         Studip\Rectors\Studip60\RemoveGetConfigRector::class,
         Studip\Rectors\Studip60\RemoveSidebarMethodsRector::class,
         Studip\Rectors\Studip60\RewriteCoursewareBlockTypesRector::class,
+        Studip\Rectors\Studip60\ReplacePageCloseRector::class,
     ])
     ->withConfiguredRule(RenameFunctionRector::class, [
         'studip_json_decode' => 'json_decode',
diff --git a/lib/Rectors/Studip60/ReplacePageCloseRector.php b/lib/Rectors/Studip60/ReplacePageCloseRector.php
new file mode 100644
index 00000000000..62b758c61aa
--- /dev/null
+++ b/lib/Rectors/Studip60/ReplacePageCloseRector.php
@@ -0,0 +1,27 @@
+<?php
+declare(strict_types=1);
+
+namespace Studip\Rectors\Studip60;
+
+use PhpParser\Node;
+use Rector\Rector\AbstractRector;
+
+final class ReplacePageCloseRector extends AbstractRector
+{
+    public function getNodeTypes(): array
+    {
+        return [Node\Expr\FuncCall::class];
+    }
+
+    public function refactor(Node $node)
+    {
+        if (!$this->isName($node->name, 'page_close')) {
+            return null;
+        }
+
+        return $this->nodeFactory->createMethodCall(
+            $this->nodeFactory->createFuncCall('sess'),
+            'save'
+        );
+    }
+}
diff --git a/rector-test.php b/rector-test.php
index 86f491a7cd0..d91925540b3 100644
--- a/rector-test.php
+++ b/rector-test.php
@@ -93,3 +93,5 @@ class TestBlockType extends \Courseware\BlockTypes\BlockType
         return \Opis\JsonSchema\Schema::fromJsonString(file_get_contents(__FILE__));
     }
 }
+
+page_close();
-- 
GitLab