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
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`
`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
]);
};
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