PHP5 kód -> PHP8 szerveren?

Fórumok

Sziasztok!

Elméleti kérdés, hogy a régen megírt kódjaimat szeretném új alapokra helyezni. (gyorsabb tempo, új funkció stb stb miatt.)

Szerintetek van értelme újraböngészni a kódot? vagy csak alá tennétek a régi könyvtárat, az újabb projektek meg mehetnek php 8 ban?

Létezik olyan értelmező, converter ami újra írja a régi kódot?

Köszönöm.

Robi

Hozzászólások

nem tudok "converter"-ről ami újraírja neked. A kód ismerete nélkül pedig bármi lehet, az is, hogy menni fog helyből, vagy minimális javítással, de lehet hogy sz*p*s lesz ;)

// Happy debugging, suckers
#define true (rand() > 10)

Szerintetek van értelme újraböngészni a kódot?

- Ez attól függ mekkora a kód és hogy mennyi olyan funkció, modul, stb. van használva benne, ami már nincs benne a 8-asban. Ezt neked kell látnod, hogy mennyi munkát kíván és hogy megéri-e.
- Nekem is van sajnos több régebbi hobbi projektem ami még 5-ös alatt fut. Egyesével át fogom nézni, de már most tudom hogy lesz olyan amit vagy
1. teljesen újra kell írnom
2. vagy megy szépen valami külön szerverre, konténerbe távol az érzékeny adatoktól
3. vagy törlöm és vége lesz mint a botnak :)

Itt van bővebb infó a migrációról 7.x-re (onnan már könnyebb a 8-asra váltani): https://www.php.net/manual/en/migration70.php
(jobb oldalon ott van az összes verzióhoz a link)

Ha esetleg találsz (vagy írsz ;) valami konvertert szólj légyszi.

Itt van bővebb infó a migrációról 7.x-re  (onnan már könnyebb a 8-asra váltani) [...]

Pontosan. Nekem a legtobb nyavalyat a mysql okozta, massal nem igazan volt gond. Es ott is nemcsak a mysql_* => mysqli_*, hanem az hogy az argumentumok sorrendje megvaltozott egynemely esetben (lasd: mysql_query($query,$handle) => mysqli_query($handle,$query)). Azon kivul mas nem igazan volt.

Szerkesztve: 2021. 04. 19., h – 00:31

Hát, elnézve a changelistet, breaking change hegyek vannak. Mondjuk nagy része jó dolog, halom olyan dolog van benne, aminek eredetileg is így kellett volna lennie, halom olyan, amiben meg leköveti más nyelveket.

A saját kódod te látod, hogy mekkora munka újraírni, mennyire van tesztekkel lefedve. Magam részéről meg új projektet nem kezdenék benne, van egy csomó más nyelv, ami ezeket már eddig is tudta, jobban. :)

(Mondjuk a PHP5 idején is arra a következtetésre jutottam, hogy amennyi időt spórol az elején a PHP az egyszerűségével, utólag sokkal többet fog hátráltatni a hülyeségével vagy, hogy hogyan strukturáld úgy a dolgaid, amit egy picit komplexebb rendszernél alapból úgy csináltál volna.)

Szerkesztve: 2021. 04. 19., h – 06:21

Az egyik lehetőség, hogy elindítom a programot, és nézem, hogy van-e hiba. Ha van, akkor javítani kell. pl. 1 2

futtasd le a teszteket. ha nincs hiba, akkor jó vagy!

szopás lehet, ha nem teljes a teszt. mégnagyobb, ha egyáltalán nincs teszt.

4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.

Létezik olyan értelmező, converter ami újra írja a régi kódot?

Van, persze, a legtöbb havidíjas előfizetéssel működik munkaszerződést és és kávét kér :) 

Sok mindenben tud segíteni a https://github.com/rectorphp/rector ,de ezt csak nagy kódbázisnál fogja megérni beállítgatni. Mondjuk elég sok segéd config elérhető hozzá. Segít pl. szépen lassan egyesével haladni a minor verziókon. Amiben egy rendes IDE is segíteni fog (PhpStorm).

Én kézzel mennék át rajta, beállítgatnám a típusokat mindenhol(!) és javítanám az ezzel előjövő rengeteg bugot, ami eddig is benne volt, csak nem tudtál róla. (IDE!)

Ha sikerül eljutnod PHP 7.4-ig, akkor utána már jó leszel 8-ra, ami amúgy nagyon klassz. Addig azért elég rögös lesz.

egy hasznalatban levo programnal ha egyevel megy a verziok kozott (vagy egyesevel mentel volna) akkor a php_error.log-ban eloszor gyakran notice-k jelennek meg igy tudod javitani ugy hogy a program nem all meg. ha nincs hasznalatban a program egybol mehetsz a 8-asra, nem gond ha leall a program. en a verziovaltasokat egy kulon szerveren szoktam levezenyelni, majd az ottani javitasokat atteszem az elesre.

neked aztan fura humorod van...