Röviden: A PHP története 1994-ben kezdődik Rasmus Lerdorffal, aki a saját weboldalához C-ben írt CGI-programokat „Personal Home Page Tools” néven emlegette. 1998-ban jelent meg a PHP 3, 2000-ben a Zend Engine-nel a PHP 4, 2004-ben a PHP 5, 2015-ben a PHP 7, 2020-ban pedig a PHP 8. Ma minden évben novemberben jelenik meg egy új verzió, amelyet négy évig gondoznak.
Hogyan született a PHP: Personal Home Page Tools (1994–1997)
A PHP-kézikönyv szerint Rasmus Lerdorf 1994-ben CGI-programok sorát írta meg C nyelven. Eredetileg csak az online önéletrajzának látogatásait kellett rögzíteniük. A gyűjteményt „Personal Home Page Tools” névre keresztelte, a forráskódot pedig 1995 júniusában tette közzé. Így mások is használhatták és javíthatták az eszközöket.
1995 szeptemberében Lerdorf bővítette az eszközöket, és átmenetileg „FI” (Forms Interpreter) néven emlegette őket. 1995 októberében teljes újraírás következett, ismét PHP néven. 1996 áprilisában a két nevet PHP/FI-vé vonta össze. Ez a változat 1996 júniusában megkapta a 2.0-s verzió státuszát, és 1997 novemberében lépett ki a béta szakaszból.
Már ez a korai időszak meghatározza a PHP-t a mai napig: gyakorlati szükségletből született nyelv, amely gyorsan hoz eredményt, és nyílt közösség fejleszti tovább.
A PHP 3 és a Zend Engine (1997–2004)
1997-ben a tel-avivi Andi Gutmans és Zeev Suraski nekilátott az elemző újraírásának, vagyis annak a résznek, amely beolvassa és szétbontja a forráskódot. Lerdorffal közösen új nyelv született, amelyet már csak „PHP”-nak hívtak. A név rekurzív betűszóvá vált: „PHP: Hypertext Preprocessor”. A PHP 3.0 1998 júniusában jelent meg a PHP/FI 2.0 utódjaként. Fontos volt mindenekelőtt a jó bővíthetőség és az objektumorientált programozás első támogatása.
Ezután Gutmans és Suraski ismét újraírta a magot. Ennek eredménye a Zend Engine lett, amelyet keresztneveikről, Zeevről és Andiról neveztek el. 1999 közepén mutatták be. A PHP 4.0 2000 májusában jelent meg, és jobb teljesítményt, HTTP-munkameneteket és kimeneti pufferelést hozott.
2004 júliusában követte a PHP 5 a Zend Engine 2.0-val és új objektummodellel. Az 5-ös sorozat sokáig használatban maradt, és minden alverzióval bővült. A PHP 5.3.3-mal a FastCGI Process Manager (FPM) önálló üzemmódként került be, a PHP 5.5.0-val pedig az OPcache bájtkód-gyorsítótár a szállított csomag része lett.
Az elmaradt PHP 6 és az ugrás a PHP 7-re (2005–2019)
A PHP 6-nak átfogó Unicode-támogatást kellett volna hoznia, vagyis az összes írásjel egységes feldolgozását. A kézikönyv szerint ezt a munkát felhagyták. Néhány tervezett funkció a PHP 5.3-ba (névterek) és a PHP 5.4-be (trait-ek és a rövid tömbjelölés []) vándorolt. A következő nagy verzió ezért a 7-es számot kapta.
A PHP 7.0 2015. december 3-án jelent meg a Zend Engine 3.0-val. Alapja a PHPNG projekt volt, a mag átdolgozása Dmitry Stogov vezetésével. A hozzá tartozó RFC, vagyis formális változtatási javaslat, 20–110 százalékos teljesítménynövekedést említett valós alkalmazásokban, például a WordPressben és a Drupalban. Újdonság volt többek között a null-koaleszcencia operátor (??) és a névtelen osztályok.
<?php
// A PHP 7.0 óta: alapértelmezett érték isset()-lánc nélkül
$sprache = $_GET['lang'] ?? 'de';
A 7-es sorozat a PHP 7.4-gyel zárult. Utolsó verziója, a 7.4.33, 2022. november 3-án jelent meg; a php.net szerint a támogatás 2022. november 28-án ért véget.
A PHP 8 és az éves ütem (2020-tól napjainkig)
A PHP 8.0 2020. november 26-án jelent meg elnevezett argumentumokkal, uniótípusokkal, attribútumokkal, a nullsafe operátorral (?->), match kifejezésekkel és JIT-fordítóval. Azóta minden évben új alverzió jelenik meg. Hogy melyik verzió mit hozott, azt a PHP 8.0-tól 8.5-ig áttekintés írja le.
| Verzió | Első kiadás | Főbb pontok |
|---|---|---|
| PHP 3.0 | 1998. június | új elemző, a „PHP: Hypertext Preprocessor” név |
| PHP 4.0 | 2000. május | Zend Engine, munkamenetek, kimeneti pufferelés |
| PHP 5.0 | 2004. július | Zend Engine 2.0, új objektummodell |
| PHP 7.0 | 2015. december 3. | Zend Engine 3.0, jelentősen gyorsabb |
| PHP 8.0 | 2020. november 26. | JIT, attribútumok, uniótípusok |
| PHP 8.1 | 2021. november 25. | enumok, Fiberek, readonly tulajdonságok |
| PHP 8.2 | 2022. december 8. | readonly osztályok, DNF-típusok |
| PHP 8.3 | 2023. november 23. | típusos osztálykonstansok |
| PHP 8.4 | 2024. november 21. | property hookok, aszimmetrikus láthatóság |
| PHP 8.5 | 2025. november 20. | pipe operátor, URI-bővítmény |
2024-ben a PHP-projekt szavazott egy új kiadási ciklusról. Azóta minden verzióág két évig kap aktív támogatást, és két évig biztonsági javításokat, mindig december 31-ig. A szabályokat részletesen a PHP-verziók és kiadási ciklus oldal tartalmazza.
Mit jelent a történelem a mai biztonság szempontjából
A hosszú történet erősség, mert a PHP stabil és jól dokumentált. Ugyanakkor teher is: sok szerveren olyan verziók futnak, amelyeket évekkel ezelőtt állítottak be, és soha nem cseréltek le. A PHP 5.6 2018. december 31. óta hivatalos támogatás nélkül van, a PHP 8.0 2023. november 26. óta, a PHP 8.1 pedig 2025. december 31. óta.
A PHP2Shell ezt láthatóvá tette. A szaksajtó szerint a PHP 5.4-ig visszamenőleg szinte az összes verzió érintett. Hivatalos javítás 2026. október 21. óta csak a 8.2–8.5 ágakhoz létezik; a 7.4, 8.0 és 8.1 verziókhoz csupán minimális forráskód-backportok vannak. Aki régebbi verziókat üzemeltet, a következményeket a PHP-életciklus vége: az elavult verziók kockázatai útmutatóban találja.
Jegyezze fel minden szerverhez a PHP-verziót és azt a dátumot, amikor a támogatása véget ér. Így a meglepetésből tervezhető határidő lesz.
Hogyan segít konkrétan a PHP SOS?
- Örökölt terhek felkutatása: Felmérjük, hogy a szerverein mely PHP-generációk futnak még, az elfeledett rendszereken is.
- Kockázat besorolása: Megmutatjuk, mely verziók kapnak hivatalos frissítést, és hol maradnak csak átmeneti megoldások.
- Migráció tervezése: A PHP 8.1 és régebbi verziók migrációjával az alkalmazásokat támogatott verzióra hozzuk, az átállás előtt tesztelve.
- Dokumentálás: Áttekintést kap a verziókról és a támogatás végének dátumairól a tervezéséhez.
Gyakori kérdések
Ki találta fel a PHP-t?
A PHP Rasmus Lerdorfra vezethető vissza. 1994-ben C-ben írt egy CGI-programgyűjteményt, amelyet Personal Home Page Toolsnak nevezett. 1997-től Andi Gutmans és Zeev Suraski újraírta az elemzőt (parsert), és ebből lett a PHP 3.
Minek a rövidítése a PHP?
Eredetileg a Personal Home Page-é. A PHP 3 óta a név rekurzív betűszó: PHP: Hypertext Preprocessor. A rövidítés tehát önmagát tartalmazza.
Miért nem volt PHP 6?
A PHP 6-nak átfogó Unicode-támogatást kellett volna hoznia. A PHP-kézikönyv szerint ezt a munkát felhagyták. Néhány tervezett funkció a PHP 5.3-ba és az 5.4-be került, a következő nagy verzió pedig a PHP 7 lett.
Mióta van PHP-FPM és OPcache?
A PHP-FPM a PHP 5.3.3-mal került be önálló SAPI-ként. Az OPcache a kézikönyv szerint a PHP 5.5.0 óta része a szállított csomagnak, előtte az 5.2–5.4 verziókhoz PECL-en keresztül volt elérhető.