- 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
AI által fordított szöveg.
A bejegyzés durumis AI által generált összefoglalója
- Bemutatjuk, hogyan használható a Rector PHP verziófrissítési eszköz a PHP 5.3 kód PHP 7.4-re való migrálására.
- A Composer telepítése után telepítse a Rectort a projektbe, és a rector.php konfigurációs fájlban adja meg a frissítendő kódot és a PHP verziót.
- A módosítási szabályok beállítása és végrehajtása révén automatikusan módosíthatja a kódot, és a módosításokat Git segítségével kezelheti a biztonságos frissítés érdekében.
A Gnuboard5, egy koreai PHP CMS weboldalán találkoztam néhány bejegyzéssel, amelyek a PHP verziófrissítés utáni, már nem támogatott szintaxis és verzió okozta nehézségekről panaszkodtak.
Ezért keresgéltem egy kicsit, és...
a Reddit-en rábukkantam a Rector nevű eszközre, ami állítólag segít a migrálásban, ezért szeretném bemutatni a használatát.
A PHP 7.0 2015-ös megjelenése óta több PHP migrálási eszköz is megjelent, mint például a PHP CS Fixer és a Rector.
A Rector sokkal könnyebben használhatónak tűnik.
A Rector (kiejtése: Rektó) a PHP 5.3 és 8.2 közötti kódot a kívánt verzióra konvertálja a szintaxis ellenőrzésével és javításával.
Egyetlen hátránya, hogy a Rector statikus analizátor, tehát a futásidőben fellépő hibákat nem képes érzékelni.
A Rector használatához a Composer (PHP csomagkezelő) telepítve kell legyen.
1. Telepítse a Composer-t.
2. Telepítse a Rectort a jelenlegi projektmappába.
3. Hozzon létre egy rector.php konfigurációs fájlt.
rector.php beállítások
A jobb megértés érdekében vegyünk egy konkrét példát.
Tegyük fel, hogy a forráskód PHP 5.3-ban íródott, és a cél PHP 7.4-re történő frissítés.
A Rector verziója 1.0.3.
A RectorConfig::config() függvény a forráskód mappáját és a PHP verziót állítja be.
A withPhpSets függvény a frissíteni kívánt PHP függvényeket határozza meg.
Ha a Rectort futtató PHP verzió 8.0, akkor
így lehet a PHP verziót beállítani: `phpverzió: true`.
De ha a futó PHP verzió 7.4 vagy alacsonyabb,
akkor nem használható a nevesített paraméterek szintaxisa a függvényekben, ezért a kívánt verzió beállításához a `true` értéket kell megadni.
A Rector PHP 8.3-at támogat, így a PHP 7.4 beállításához a következőt kell használni:
->withPaths([
__DIR__ , // A rector.php fájl helye.
])
Itt lehet megadni azokat a szabályokat és mappákat, amelyeket ki akarunk hagyni a frissítésből.
A mappák formátuma: '/mappa_név/*'.
A fájlok formátuma: 'fájl_név'.
A "SensitiveConstantNameRector" szabályt is hozzáadtam a kihagyott szabályokhoz.
A Rector nem képes felismerni a PHP tömbökben lévő definiálatlan indexeket, és csak konstansként értelmezi őket, ami miatt helytelenül módosíthatja a kódot. Ezért adtam hozzá a kihagyott szabályokhoz.
Ezek a szabályok a kód stílusával kapcsolatosak, ezért kihagytam őket.
Futtatás
Kétféleképpen lehet futtatni.
Ez a parancs csak kiírja a konzolra a módosítandó kódrészeket, anélkül, hogy megváltoztatná a fájlokat.
Nagyobb kódbázis esetén sok memóriára van szükség, ezért a `--memory-limit=2G` opcióval megadhatja a használt memória mennyiségét.
Ez a parancs közvetlenül módosítja a forráskódot.
Nagyon sok opció létezik, ezért előfordulhat, hogy nem kívánt beállítások is aktiválódnak, ezért érdemes Git-tel nyomon követni a változásokat.