Theme Migration auf aktuelle PHP Version mit Rector

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Theme Migration auf aktuelle PHP Version mit Rector

Beitrag von r23 »

Hallo,

wir haben leider auch den Fehler gemacht und haben ein Theme bei https://themeforest.net/ für WordPress gekauft. Der Vorteil war, man konnte relativ schnell starten und es funktionierte für den Anfang reibungslos.

Leider stellten die Entwickler die Pflege von dem Theme ein.

Wir haben nun die Migration auf PHP 8.1 durchgeführt und dies automatisch mit Rector

Rector ist ein Tool, das PHP-Code automatisch modernisieren und verbessern kann. Um Rector mit Composer zu installieren, musst du zuerst Composer auf deinem System haben. Wenn du Composer noch nicht hast, kannst du ihn mit den folgenden Schritten installieren:

- Stelle sicher, dass du PHP und unzip auf deinem System hast. du kannst sie mit dem folgenden Befehl installieren:

Code: Alles auswählen

sudo apt install php-cli unzip
- Lade Composer-Installationsskript herunter:
https://getcomposer.org/download/

- Überprüfe, ob das Skript nicht beschädigt ist, indem du den Hash-Wert mit dem neuesten Hash-Wert auf der Composer-Seite vergleichst.

- Führen das Installationsskript aus, um Composer zu installieren: `php composer-setup.php --install-dir=/usr/local/bin --filename=composer`

- Lösche das Skript, da es nicht mehr benötigt wird: `rm composer-setup.php`

Nachdem du Composer installiert hast, kannst du Rector mit dem folgenden Befehl installieren:

Code: Alles auswählen

`composer require rector/rector --dev`
du kannst dann Rector in deinem Projekt verwenden, indem du den folgenden Befehl ausführst:
`vendor/bin/rector process src --dry-run`

Dieser Befehl wird deinen Code im src-Verzeichnis analysieren und Änderungsvorschläge anzeigen. Du kannst verschiedene Optionen für Rector angeben, je nach deinen Anforderungen. Weitere Informationen findest du in https://getrector.com/documentation

Testen
vendor/bin/rector process c:\xampp\htdocs\php_update\wp-content\themes\*skin*\ -- dry-run


rector.php anpassen

Code: Alles auswählen

<?php

declare(strict_types=1);

use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__ . '/factory',
        __DIR__ . '/library',
        __DIR__ . '/loops',
        __DIR__ . '/options',
        __DIR__ . '/post-formats',
    ]);

    // register a single rule
    $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);

    // define sets of rules
       $rectorConfig->sets([
            LevelSetList::UP_TO_PHP_81
       ]);
	   
	// exclude a directory from Rector
	$rectorConfig->skip([
        __DIR__ . '/vendor', // exclude the whole vendor directory
    ]);
};
Ich nehme das vendor Verzeichnis aus der Änderungsliste.

Wenn ich mit den Änderungen zufrieden bin führe ich aus:
vendor/bin/rector process c:\xampp\htdocs\php_update\wp-content\themes\*skin*\

Leider ändert WordPress Navigationen und bestehende Funktionen werden gelöscht oder geändert.

Mit etwas Aufwand bekommt man die Seite aber scihtbar.
https://blog.myoos.de
https://oos-shop.de

Sollte etwas nicht funktionieren - bitte eben melden.

wenn du deine Theme behalten und dei Migrationa uf PHP 8.x durchführen möchtest, kann unser Service Team https://blog.myoos.de/service/ gerne helfen.

Schönes Wochenende

Ralf
Antworten