- GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
- Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector
Dit is een door AI vertaalde tekst.
Samenvatting van de tekst door durumis AI
- We laten zien hoe je PHP 5.3-code kunt migreren naar PHP 7.4 met behulp van Rector, een tool voor het upgraden van PHP-versies.
- Na installatie via Composer installeer je Rector in je project en configureer je het rector.php configuratiebestand om de te upgraden code en de gewenste PHP-versie op te geven.
- Door regels voor wijzigingen te configureren en uit te voeren, kun je code automatisch laten aanpassen. Wijzigingen worden beheerd via Git, zodat je veilig kunt upgraden.
Tijdens het bekijken van een Gnuboard5-website (een PHP CMS uit Zuid-Korea) kwam ik een aantal berichten tegen waarin gebruikers problemen ondervonden met verouderde syntaxis en versies na een PHP-versie-upgrade.
Op zoek naar een oplossing stuitte ik op...
Reddit, waar werd gesuggereerd dat het hulpmiddel Rector kan helpen met de migratie. In deze post zal ik uitleggen hoe je het kunt gebruiken.
Na de release van PHP 7.0 in 2015 zijn er verschillende PHP-migratietools op de markt gekomen, zoals php cs-fixer en Rector.
Rector lijkt wat gebruiksvriendelijker te zijn.
Rector (uitspraak: Rek-tor) controleert en corrigeert de syntaxis van PHP-code van versie 5.3 tot 8.2, zodat deze voldoet aan de gewenste versie.
Een nadeel van Rector is dat het een statische analysetool is. Daardoor kan het geen runtime-fouten detecteren.
Om Rector te kunnen gebruiken, moet Composer (de PHP-pakketbeheerder) geïnstalleerd zijn.
1. Installeer Composer.
2. Installeer Rector in de huidige projectmap.
3. Maak het configuratiebestand rector.php aan.
rector.php configuratie
Om het begrijpelijker te maken, zullen we een scenario schetsen.
We gaan ervan uit dat de broncode in PHP 5.3 is geschreven en we willen upgraden naar PHP 7.4.
De Rector-versie is 1.0.3.
RectorConfig::config() stelt de broncodemap en de PHP-versie in.
De functie withPhpSets stelt de PHP-functies in waarnaar geüpgraded moet worden.
Als de PHP-versie waarop Rector wordt uitgevoerd PHP 8.0 is,
kan de PHP-versie op deze manier worden ingesteld: `phpversie: true`.
Maar als de uitvoerende PHP-versie PHP 7.4 of lager is,
kan de syntaxis met benoemde parameters in functies niet worden gebruikt. In dat geval moet je de gewenste versie instellen met `true`.
Rector ondersteunt PHP 8.3. Om PHP 7.4 te specificeren, doe je het volgende:
->withPaths([
__DIR__ , // De map waarin rector.php zich bevindt.
])
Hiermee geef je aan welke regels en mappen Rector moet overslaan.
Voor mappen gebruik je '/mapnaam/*'.
Voor bestanden gebruik je 'bestandsnaam'.
De regel "SensitiveConstantNameRector" heb ik toegevoegd omdat
Rector in PHP-arrays undefined index niet kan detecteren en deze als constanten interpreteert. Daardoor kan Rector de code op de verkeerde manier aanpassen. Door deze regel toe te voegen, wordt dit voorkomen.
Deze regels gaan over codestijl en worden daarom uitgesloten.
Uitvoeren
Er zijn twee manieren om Rector uit te voeren.
Deze opdracht geeft alleen de wijzigingen weer die Rector zou aanbrengen in de console, zonder de code daadwerkelijk aan te passen.
Hoe meer broncode, hoe meer RAM er nodig is. Daarom moet je de optie `--memory-limit=2G` gebruiken om het geheugengebruik te beperken.
Deze opdracht past de broncode direct aan.
Er zijn veel opties beschikbaar, dus het is belangrijk om te controleren of er geen ongewenste opties zijn toegepast. Gebruik Git om de wijzigingen te controleren.