Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

porucha není na vašem přijímači

PHP 5 → 4 converter

Vytvořil jsem nástroj pro automatický převod skriptů z PHP5 do PHP4. Slouží pro převod nových jazykových konstrukcí OOP. Nahrazuje je ekvivalentními konstrukcemi, které fungují v obou verzích.

Podporovány jsou tyto konstrukce:

Overloading se ponechává beze změny. Cílem převodníku také není nahrazovat chybějící funkce, od toho je tu třeba PEAR PHP_Compat.

Konvertor si můžete naživo vyzkoušet. Pokud narazíte na nějaké chybky, svěřte se v komentářích.

Karma body: 28. Líbil se vám článek?

Komentáře » přidat

  1. [1] Pachollini: nový

    Tak to mi tedy připadá jako skvělý nápad, určitě to někdy vyzkouším ;-)

    Posláno 28. 11. 2005 v 7.59 | Odpovědět
  2. avatar [2] martinpav: nový

    <noflame>
    Neviem, nebolo by lepsie na 4-ku zabudnut?

    Posláno 28. 11. 2005 v 8.40 | Odpovědět
    Na komentář reagoval [3] David Grudl
  3. avatar [3] David Grudl: nový

    [2] martinpav: Vysvětli to například všem klientům Českého Hostingu :-(

    Posláno 28. 11. 2005 v 8.53 | Odpovědět
    Na komentář reagoval [4] martinpav
  4. avatar [4] martinpav: nový

    [3] David Grudl: Chapem. Nastastie spolupracujem s hostingom ktory ma k dispozicii 4-ku aj 5-ku a mozem si vybrat.

    OT: co sa stalo s DiBi ?

    Posláno 28. 11. 2005 v 9.08 | Odpovědět
  5. [5] Matěj Kloubek: nový

    Zdravím,
    protože všichni naši zákaznící používají v této chvíli PHP4, tak by asi nebylo rozumné na 4 zapomenout.
    PHP5 na Českém hostingu bude do konce tohoto roku. Stávající i noví klienti si budou moci vybrat na jaké verzi chtějí hostovat, takže takovéto nástroje určitě přijdou vhod.

    Posláno 28. 11. 2005 v 10.01 | Odpovědět
    Na komentář reagoval [6] David Grudl
    Na komentář reagoval [9] tark
  6. avatar [6] David Grudl: nový

    [5] Matěj Kloubek: ajaj, nechtěl jsem, aby to vyznělo jako útok na Český Hosting, jehož služeb si velmi cením. Budu tedy otázku formulovat lépe: „Vysvětli to všem klientům, kteří kvůli nekompatibilitě jakékoliv části webové aplikace nebudou moci přejít na PHP5.“.

    Posláno 28. 11. 2005 v 10.19 | Odpovědět
  7. [7] honza: nový

    zdravim, me by zajimalo cim jste to resil..prekladovy automat?

    Posláno 28. 11. 2005 v 10.27 | Odpovědět
    Na komentář reagoval [8] David Grudl
  8. avatar [8] David Grudl: nový

    [7] honza: rozparsuji vstup na pole tokenů funkcí token_get_all. Vytvořil jsem si jednoduchý procesor regulárních výrazů, který umí nad takovým polem pracovat (cca 100 řádků kódu) a definoval regulární výrazy pro jednotlivé konstrukce. Vlastní program (cca 300 řádků) pak už jen postupně vyhledává výskyty těchto výrazů a zaměňuje je do potřebné podoby. Ještě je tam pár triků, které řeší správné odsazení apod.

    Celé je to krátké, velice přehledné a především naprosto spolehlivé.

    Posláno 28. 11. 2005 v 11.04 | Odpovědět
  9. [9] tark: nový

    [5] Matěj Kloubek: Už se těším, vlastně, už jsem se rozhodl programovat jen pro PHP5 a … nechce se mi hledat jinej hosting.. ;)

    Posláno 28. 11. 2005 v 11.22 | Odpovědět
  10. avatar [10] T3RMiX: nový

    Pěkné, už se těším až to vyzkouším v praxi. Co takhle ve volných chvílích udělat PHP4>PHP5 :]

    Posláno 28. 11. 2005 v 11.55 | Odpovědět
  11. avatar [11] pif: nový

    me to prijde smesne :))))) proste chapu proc si to udelal, jen se musim smat, zes byl nuceny neco takoveho udelat… Ted uz mi to vazne prijde vtipne, treba ten singleton a vubec plno dalsich vseljakych hacku ktere musis udelat. Ale jinak fajn.

    Zend studio ownz :))

    Posláno 28. 11. 2005 v 15.49 | Odpovědět
  12. avatar [12] johno: nový

    DGX: No zaujímavý nápad, ale nejaké muchy som našiel.

    Posláno 28. 11. 2005 v 15.57 | Odpovědět
    Na komentář reagoval [16] David Grudl
  13. avatar [13] Petr Krontorad: nový

    kdyz bez podpory exceptions to nejak ztraci kouzlo.. ne, ze bych vedel, jak to obejit, i kdyz by to minimalne nejak „prasacky“ asi jit mohlo.

    Posláno 28. 11. 2005 v 16.37 | Odpovědět
    Na komentář reagoval [16] David Grudl
  14. avatar [14] kaifman: nový

    pouzitelnejsi by to spis bylo opacnym smerem ;-)

    Posláno 28. 11. 2005 v 18.08 | Odpovědět
    Na komentář reagoval [16] David Grudl
  15. avatar [15] pif: nový

    jo ta kontrola objektu :)))) to dgx asi opomnel.

    Posláno 28. 11. 2005 ve 22.48 | Odpovědět
  16. avatar [16] David Grudl: nový

    [12] johno: díky, na Type Hinting jsem úplně zapomněl, je to opravené.

    Předávání objektů referencí je asi největší oříšek celého převodu a zdánlivě neřešitelný. Používám tento trik (velmi mě mrzí, že mě nenapadl o pár let dřív), který skutečně v 99 % případů perfektně funguje, jen v převodníku byl vypnutý. Doplnil jsem jej tedy o konfiguraci a teď ho lze aktivovat, viz příklad.

    [13] Petr Krontorad: fakt mě nenapadá, jak to řešit. Ani prasácky :-(

    [14] kaifman: opačným směrem jaksi není co převádět

    Dovolil jsem ti smazat zcela OT komentáře na téma vyhlazování fontů v Zend Studio, Radek už o tom napsal u sebe.

    Posláno 30. 11. 2005 ve 4.52 | Odpovědět
  17. avatar [17] ATom: nový

    No, ale chtělo by to verzi schopnout pracovat jako CLI aplikace, která by dokázala dávkově konvertovat celou složku. Takhle je to docela nepraktické pokaždé konvertovat 50 php souboru pojednom.

    Jinak to je fakt geniální věc.

    Mimochodem __autoload() asi taky řešit nepůjde, co?

    Posláno 8. 1. 2006 v 11.10 | Odpovědět
  18. [18] Matěj Kloubek: nový

    Na Českém hostingu můžete používat PHP 5 včetně MySQL 5. Chvilku to trvalo. Do konce února je testovací provoz což neznamená, že by služba nefungovala jak má.

    Posláno 4. 2. 2006 ve 13.46 | Odpovědět
  19. [19] Bjarne: nový

    Uprimne nechapu proc konvertovat a jeste jen neuplne z vyssi verze do nizsi. Smysluplny by mi pripadala obracena konverze, protoze o to jde vetsinou – rozchodit starsi veci…

    Posláno 7. 2. 2006 ve 20.47 | Odpovědět
    Na komentář reagoval [20] Andrew
  20. [20] Andrew: nový

    [19] Bjarne: Jak píšeš – nechápeš to. Ten konvertor je pro lidi, kteří píší NOVÉ věci ROVNOU V PHP5, ale nechtějí od nich odstřihnout uživatelé, kteří chtějí/musí používat PHP4.

    Mimo to, PHP4 → PHP5 konvertor je logicky hloupost. Stejně by se ten kód musel projít a poupravovat.

    Posláno 8. 2. 2006 ve 12.30 | Odpovědět

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře ani hlasovat

Výtah na začátek článku na první komentář

Názory čtenářů v diskusích nejsou názory provozovatele webu, a ten za jejich obsah neodpovídá.

La Trine © 2004, 2008 David Grudl – o webu
provozuje Pachollini.

Jakékoliv užití obsahu, včetně převzetí článků nebo jejich částí, je bez předchozího písemného svolení autora zakázáno.

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.