A php a webes alkalmazások és oldalak esetén az egyik legnépszerűbb programozási nyelv. A leghíresebb közösségi média platformok nagy részét is ezen a nyelven fejlesztik, így tehát nem csoda hogy a legtöbb cég php programozót keres. Az adatbázis kezeléstől az objektumorientált megoldásokig a php sok fontos funkciót támogat és emiatt tudott ilyen széles körben elterjedni. Nézzük tehát, hogy mi kell ahhoz manapság, hogy valakiből php programozó legyen.
Az első és legfontosabb lépés az elszántság. Egy angol szólással élve: “well begun is half done”. Magyarul ha valamit jól elkezdtünk azt már majdnem be is fejeztük. A kezdetek tehát a legfontosabbak. Első körben érdemes tájékozódni az aktuális munkapiaci állapotokról. Tényleg a legkeresettebb-e a php programozó jelenleg? Nem lehet, hogy inkább Javascript irányba kellene elmenni? Ilyen és ehhez hasonló kérdéseket kell feltenni magunknak és ezekre kell megtalálni a választ. A válaszok nagy rész valószínűleg a php javára fogja billenteni majd a mérleg nyelvét, mert alapvető php ismeretek nélkül nem nagyon beszélhetünk webes fejlesztésekről. A NodeJs az egyik legelterjedtebb konkurens nyelv/keretrendszer, de az alapok miatt a php kikerülhetetlen. A php alapjaihoz pedig elkerülhetetlen egy még alacsonyabb szintű nyelv ismerete. Ilyen lehet például a C, de az objektumorientáltság miatt meg kell fontolni a C++ elsajátítását is.
A php-ben történő fejlesztés nagyon hasonló módon történik ahhoz mint amikor C++-ban programozunk. Sok problémát meg lehet oldani deklaratív módon is és ki lehet kerülni az objektumok használatát. Ezek a problémák viszont csak egyszerű rendszerekben jönnek elő. Ha már kicsit bonyolultabb a feladat és például egy nagyobb céget céloztunk meg a jobb fizetés reményében (az it works No Fluff Jobs portálon van egy rakat ilyen ajánlat), akkor az objektumorientált programozási paradigmákat muszáj lesz elsajátítani. Ezen absztraktabb gondolatok megismerése előtt azonban ha valaki php programozó akar lenni, akkor tisztában kell lennie a programozás alapvető kifejezéseivel. Mik azok a függvények, mik azok a változók, mi az a scope és ehhez hasonló kérdések jönnek itt elő. Miért használunk konstans változókat? Mik azok a tömbök és hogyan használjuk a virtuális függvényeket. Ezekre a kérdésekre kell tudni választ adnia egy állásinterjún résztvevő php programozó jelöltnek.
Ha valaki php programozó szeretne lenni és még abszolút semmilyen ismeretei nincsenek, akkor nincs mese, az alapoktól kell elkezdeni. Ez tulajdonképp a számítógép felépítésével és a programok működésével kezdődik. Meg kell ismerkednünk a Neumann architektúrával és azzal is hogy mi az a processzor és mi az a memória. Tisztába kell tehát tenni ezeket a fogalmakat és csak így tudunk elindulni a tanulás rögös útján. Amikor valaki php-ben programot fejleszt nem kell minden pillanatban ezeket a fogalmakat átgondolnia, de jó ha tudja hogyan működik a vas. Ez például C nyelven történő fejlesztés esetén sokkal inkább előjön, azonban amikor például a php értelmező valamilyen hibaüzenetet dob vissza abban is elég sok ilyen alacsonyabb nyelvi szintű utalás lehet. Ezek megértéséhez jól jönnek az architektúrális ismeretek.
A legjobban tehát akkor járunk el ha elkezdünk magunktól egyszerű kis programokat írogatni és inkrementálisan tanulunk. Eleinte minden nagyon bonyolultnak fog tűnni aztán fokozatosan kitisztul a kép. A programokat ne Python nyelven írjuk, mert ugyan ez tűnik a legcsábítóbbnak nem sok haszna van. A Python használatával pont azokat a megugarandó akadályokat kerüljük ki, amiket a php használata és az egyéb fontos backend és frontend oldali programozások során le kell majd küzdenünk.
Az interneten számos ingyenes oktatóanyag kering php ismeretekkel kapcsolatban. Ezeket is tudom ajánlani, de ha valaki bemegy egy könyvesboltba és néhány ezer forintért beszerez egy php bevezető könyvet akkor sem jár el rosszul. Az egyik legnagyobb programozói fórum a stackoverflow nekem például a mai napig nagy segítség. Ha nem tudok valamit és azt beírom a google keresőbe, akkor 10-ből 9-szer ez az oldal jön fel és itt lelkes programozó százai segítenek a problémák megoldásában.
Tegyük fel tehát, hogy sikerült megírni az első php kódunkat. Le is fut és a várt eredményt generálja. Ez általában két szám összeadása szokott lenni és a kezdő programozó értetlenül mered maga elé, hogy két számot ugyan sikerült összeadnom php-val, de hogyan lesz ebből Facebook backend alkalmazás vagy TikTok? Joggal tesszük fel a kérdést és tiszta sor, hogy innen azért még sokat kell fejlődnünk míg odaérünk, hogy egy amerikai multinál tudunk php-ban fejleszteni. Ha sikerült elsajátítani az alapvető ismereteket, tudjuk hogyan működnek a függvények, mik azok a változók és esetleg tudjuk mik azok az objektumok, akkor érdemes egy keretrendszer használatát megtanulni. Nekem egy pár webes alkalmazást Symfony-ban sikerült lefejlesztenem és panaszra nincs okom. Ez egy néhány nap (esetleg hét) alatt elsajátítható php keretrendszer. A használata viszonylag egyszerű és a felhasználók kezelésétől kezdve az adatbázis adminisztrációs műveleteken át szinten mindent meg lehet benne oldani. Sokak szerint CMS feladatok megvalósítására a Symfony nem elég erős, de én úgy gondolom ez a tipikus felesleges kákán is csomót keresés esete.