Bevezető:
Ebben a leckében megismerkedünk a php kialakulásának történetével és fejlődésével.
Megismerjük a működésének elméletét is. Foglalkozunk a webszerver fogalmával és a
webszerver összetevőinek működésével. Így jobban meg fogjuk érteni a leckék alatt,
hogy a létrehozott kódjaink hogyan is működnek. Részletesen megismerjük a folyamatokat,
amelyek egy php lap futtatásakor történnek a kliens gép és a webszerver között. Mivel a
tananyagnak része a webszerver telepítése is, így mindenképpen fontos, hogy jól
megértsük a működését is. Betekintést nyerhetünk a php programok alkalmazási
területeibe és felhasználásuk lehetőségeibe. Végezetül megtekintünk néhány
hosting lehetőséget azon
tanulóink részére, akik nem szeretnének webszervert telepíteni és más megoldásokat
keresnek.
A Php története:
A Php nyelv az 1994-es megszületésétől napjainkig hatalmas
fejlődésen ment keresztül. A Php ősét Rasmus Lerdorf
(Rasmus Lerdorf a jobb oldali képen látható)
alkotta meg, saját személyes oldalai számára. Ekkor a nyelv nem más volt, mint egy
Perl scriptgyűjtemény. Az akkoriban már elterjedt és
kedvelt Perl nyelv elemeit használta arra, hogy nyomon kövesse az online önéletrajzához
való hozzáféréseket. Egyszerű megoldást keresett egy egyszerű problémára és így született
meg a Php őse. A kezdeti nyelv nevének jelentése ekkor még PHP: Personal
Home Page Tools (személyes honlap eszközök) volt. Ezután, mivel több
funkcionalitásra volt szüksége, alkalmazta a FI (Form Interpreter)
nevű eszközt és ezek egyesítésével jött létre a PHP/FI nyelv.
Jelentése: Personal Home Page / Forms Interpreter (személyes honlap / űrlap
értelmező). Rasmus Lerdorf készített egy sokkal összetettebb és terjedelmesebb
C nyelvű implementációt. A bővített forma már képes volt arra, hogy adatbázisokat
kezeljen. Ezen felül lehetőséget biztosított a fejlesztőknek, hogy egyszerűbb
webes alkalmazásokat állítsanak össze a nyelv használatával.
Rasmus Lerdorf úgy döntött, hogy közzéteszi a forráskódot, hogy ezáltal a nyelvet bárki
használhassa és beletekinthessen a forrásába. Ez lehetőséget adott minden vállalkozó szellemű
fejlesztőnek a nyelv javítására és további fejlesztésére. Az akkor még PHP/FI nevet viselő
nyelv elindult hódító útjára és nagyon hamar rengeteg felhasználóhoz jutott el.
A PHP/FI már tartalmazott néhány jellemzőt és funkcionalitást a mai Php nyelvből. Ilyenek például
az automatikus űrlapváltozó értelmezés, Perl-szerű változókezelés és a HTML-be ágyazott
szintaxis. 1997-re a PHP/FI 2.0 volt az újabb fejlesztés, amelyben
a C implementáció második újraírásával tovább fejlődött a programnyelv. Ez a verzió már
futótűzként terjedt és világszerte több ezer felhasználó használta. Több mint 50.000
domain jelezte, hogy teleptette és használja a PHP/FI 2.0-t, ez az
akkori domain-ek számának 1%-a volt. Igaz ugyan, hogy a nyílt forráskódnak
köszönhetően többen is hozzájárultak a fejlesztéshez, de ekkor még a programnyelv fejlesztése
nagyjából Rasmus Lerdorf egyszemélyes project-je volt. A PHP/FI 2.0 csak 1997
novemberében került hivatalosan kiadásra, mert több hónapot próbaverzióként
töltött el. Talán ennek a kis késésnek volt köszönhető, hogy hamarosan berobbant a köztudatba
a Php 3.
A Php 3 volt az első olyan verzió, amely már szerkezetileg és
működésében is nagyban hasonlított a ma használt értelmezőkre. Ez a verzió már nem a
PHP/FI 2.0 továbbfejlesztése volt, hanem egy teljes újraírás. Az alapkoncepciót
természetesen a PHP/FI adta, de megváltoztak a célok és az alkalmazási terület is, így
a programnyelv fejlesztése már sokkal többet kívánt, mint egy egyszerű fejlesztés.
Alapjaiban kellett megváltoztatni az egészet. Andi Gutmans és Zeev Suraski
(Zeev Suraski a bal oldali képen látható)
volt az a két fejlesztő, akik megalkották a Php 3 alapmotorját és
útjára indították a Php új generációjának fejlődését. Ezzel elkezdődött egy csapatmunka.
A Php jelentése ekkor már PHP: Hypertext Preprocessor- ra (Hiperszöveg
Előfeldolgozó) változott.
Andi Gutmans és Zeev Suraski (Andi Gutmans a jobb oldali képen látható) egy egyetemi projekt keretein
belül alkalmazta a PHP/FI 2.0-t és azt tapasztalták, hogy a programnyelv nem támogatja
megfelelően az eCommerce (pl. Interneten keresztüli bankkártyás fizettetések)
alkalmazások írását, fejlesztését. Ekkor döntöttek úgy, hogy átírják
a PHP/FI 2.0-t és megalkotják az új Php 3-at. Természetesen
a fejlesztésből nem maradt ki Rasmus Lerdorf sem. Andi
Gutmans és Zeev Suraski felkérték az együttműködésre és az így kialakult csapat
bejelentette 1997 év végén a Php 3 megjelenését, amely a PHP/FI 2.0 hivatalos
utódja lett.
Mivel a régi motort teljesen átalakították, így a PHP/FI 2.0
programnyelv fejlesztése szinte teljesen abbamaradt és átadta helyét az új generációs
Php 3-nak. A Php 3.0 egyik legnagyobb lehetősége, előnye (talán a nagy sikerének a titka
is) a kiterjeszthetősége volt. A végfelhasználókat egy szilárd, sok különböző adatbázist
támogató infrastruktúrával, protokollokkal és API-kkal
szolgálta ki. Az API nem más mint az Application
Programming Interface (Felhasználói Program Interfész)
rövidítése. Szabványos és jól dokumentált
függvények és eljárások halmaza, amiket a programozó a szoftver és hardver vezérlésére
használhat.
A Php 3.0 kiterjeszthetősége egy olyan lehetőséget kínált, ami programozók tucatjait
csábított arra, hogy új kiterjesztésekkel, API-kkal bővítsék szabadon a nyelvet. Volt még
egy újonnan bevezetett tulajdonság, ami mérföldkőnek számított a nyelv fejlődésében, az
pedig nem más, mint az objektum-orientált szintaxisok támogatása. Az egész programnyelv
szintaxisa sokkal erősebb és konzisztensebb (egységesebb) lett.
Kialakult az a stabil struktúra, amelyre már lehetett építkezni. A Php 3.0-at hivatalosan 1998
júniusában adták ki és ezt követően közel 9 hónapig volt nyilvánosan is tesztelési stádiumban.
Újabb és újabb fejlesztések és API-k kerültek a csomagba a lelkes fejlesztők és programozók
táborától. 1998 év végére több százezer webhely jelezte, hogy teleptette és használja a Php
3-at Ez az akkoriban létező webhelyek 10% volt. Elindult az a futótűzszerű terjedés, ami
biztosította a Php későbbi elterjedését és hihetetlen népszerűségét.
Nem telt el sok idő a Php 3.0 kiadását követően, és a két fejlesztő, Andi Gutmans és
Zeev Suraski máris munkához látott, hogy átdolgozza a php magját. Az alapcélkitűzésük
ezzel az újabb módosítással az volt, hogy lépést tartva a kor igényeivel tovább
fejlesszék és javítsák a bonyolult alkalmazások hatékonyságát. Tökéletesíteni akarták
a Php kódbázisának modularitását, ezzel téve még gyorsabbá és hatékonyabbá a nyelvet.
Modularitásnak nevezzük azt, amikor egy rendszer elemei
elhatárolódnak, és egy jól
definiált kapcsolódófelületen (interface-en) át kommunikálnak egymással.A Php 3
nem arra volt tervezve, hogy összetett és bonyolult
eljárásokat kezeljen, így erre mindenképpen szükség volt a továbblépéshez.
Andi Gutmans és Zeev Suraski egy új motort írt tehát a fenti célok elérésére, amit
Zend Engine-nek neveztek el. Ez az elnevezés a Zeev és
Andi nevekből összeállítva született meg és a mai napig ez a motor hajtja a
Php fordítókat. Ezt az új motort 1999 közepén mutatták be. Ezen a motoron elindulva
fejlesztették ki a php 4-et. Sok új lehetőséget és funkciót építettek az új Php verzióba,
amely PHP 4.0 néven, hivatalosan 2000 májusában került kiadásra,
majdnem két évvel a PHP 3.0 után. A Zend Technologies ma már a
PHP mögött álló első számú cég, a PHP alapjainak készítői indították. A Php 4.0-ban rengeteg
újítás látott napvilágot, például sokkal több webszervert támogat, HTTP session-ök
alkalmazása, kimenet-pufferelés, ezáltal a programok gyorsabb futása, kisebb gépigénye..
Nagy hangsúlyt fektettek a biztonságosabb üzemelésre is, azaz a felhasználói inputok sokkal
biztonságosabb kezelést kaptak. Ezeken felül még sok egyébb nyelvi konstrukció került
bevezetésre. Ezekről azonban nem érdemes hosszan beszélni,
hiszen a nyelv továbbfejlődött egy újabb verzióval.
A leckék készítésekor a Php 5 (PHP 5.2.4) volt az aktuális verzió,
de már bejelentették a 6-os verzió megjelenését is, tehát egyértelműen érzékelhető, hogy a
nyelv fokozatosan fejlődik. A Php 5 hosszú fejlesztés és sok előzetes kiadás után
2004 júliusában jelent meg. Alapja a Zend Engine 2.0
nevű motor, amely tartalmazza az új objektum-orientált modellt és számos egyéb
új szolgáltatást. Jelenleg több millió webhely telepítette és alkalmazza a Php értelmező
alkalmazást, körülbelül a mai webhelyek összességének több, mint 20%-a. Az egyszemélyes projekt
mára már rég a múlté. Jelenleg a Php fejlesztői csapata több tucat fejlesztőt foglal magában,
valamint sok más embert, aki a Php-hoz fűződő projektekben dolgozik.
Ilyen projectek például a PEAR és a dokumentációs projektek. A Php
nyelvhez több nyelven is adtak ki nagyon jó és összetett Manual helpet, ami nagyon hasznos
lehet azoknak, akik elhatározták, hogy php programokat fognak készíteni. Ezek a
dokumentációk mindig naprakészen frissítve elérhetőek a Php saját weboldalain.
Ez volt tehát a Php fejlődésének rövid történelmi áttekintése. Fontos megértenünk azt, hogy miért
is alakult ki ez a nyelv és milyen irányba fejlődött az évek során. A rengeteg belefektetett
munka ellenére is megmaradt ingyenesen használható környezetnek és egyre népszerűbb. A Php
magában azonban kevés. A működéséhez szükség van egy webszerverre is. A 2. és 3. leckében
foglalkozunk a webszerver telepítésével és beüzemelésével, de azt is fontos megértenünk,
hogy a webszerver hogyan működik és ezzel együtt a php működésébe is betekintést nyerhetünk. Nézzünk
át néhány alapfogalmat a webszerverrel és annak működésével kapcsolatban.
Kliens-szerver működés:
Általánosságban azt jelenti, hogy egy kiszolgáló (szerver) program a kliens programtól hozzá
érkező kéréseket feldolgozza és választ ad rájuk. Egyszerre akár több kérést is ki tud
szolgálni. A kliens és a szerver program általában nem ugyanazon a számítógépen működik, ezért
szükség van valamilyen címzési rendszerre, és kommunikációs szabályokra. Most, a mi esetünkben
a kliensprogram egy böngésző (Internet Explorer, FireFox, Opera, stb.), ami a webcím (URL) alapján megkeresi a kiszolgálót, és
elkéri a megadott címen található lapot. A kiszolgáló program pedig egy webszerver (Apache, IIS, stb.), ami megkeresi a kért lapot, és ha megtalálja,
elküldi. A címzési rendszert a DNS valósítja meg, a kommunikáció pedig a http protokoll
alapján történik. Utóbbiakat lásd később.
A TCP/IP protokoll:
A TCP/IP (az angol Transmission Control Protocol/Internet Protocol rövidítése,
magyarul átviteli vezérlő protokoll/internetprotokoll): az interneten
használt kapcsolatorientált kommunikációs protokoll, amely két protokoll együttese. A TCP
kezeli és tartja fenn a kommunikációs kapcsolatot és biztosítja annak hibamentességét,
míg az IP végzi az adatcsomagok alacsony szintű vezérlését és továbbítását. Amikor az
interneten két számítógép kapcsolatba lép, és kommunikál, akkor a TCP/IP protokollra
építi a kommunikációját.
A HTTP mint protokoll:
A HTTP (HyperText Transfer Protocol) kérés/válasz jellegű
protokoll ügyfél (kliens) és kiszolgáló (szerver) között. A böngésző és a webkiszolgáló
közötti kommunikáció szabályait írja le. Működéséhez a TCP/IP
protokol szükséges.
Az IP cím:
Említettük, hogy két számítógép kapcsolatához kommunikációs szabályok (protokoll) és
címzési rendszer kell. Az Interneten az IP protokoll szerint zajlik az élet. Az IP,
a forrás- és célállomásokat (az úgynevezett hostokat) címekkel (IP-címek) azonosítja,
amelyek 32 biten ábrázolt egész számok; azonban ezt hagyományosan négy darab 8 bites
(vagyis 0 és 255 közé eső), ponttal elválasztott számmal írjuk le, a könnyebb
olvashatóság miatt (pl: 192.168.42.1).
Domain név (tartománynév):
A tartománynév fogalmat több formában is ismerjük és használjuk. Angolul Domain Name,
angolosan magyarul kiejtve domainnév, illetve doménnév. A tartománynév egy számítógép
egyedi neve az interneten, mely megkülönbözteti a többitől. A tartománynevek csupán
címkék, amiket a hosszú és bonyolult IP-címek helyett használhatunk. A tartományneveket
nem szabad összekeverni a weblapokkal vagy webhelyekkel. A tartománynév ugyan legtöbbször
kifejezi vagy valamilyen formában jelzi a cél webhely tartalmát, de ez nem feltétel és
nem is kötelező.
DNS:
A DNS (Domain Name Service) az internet működésének egyik
alappillére. Egy olyan rendszer, amely hálózatokon (például az interneten) a kiszolgáló-
és tartománynevekről tárol információt, egyfajta elosztott adatbázisban. A sokféle
tárolható információ közül a legfontosabbak az egyes tartománynevekhez tartozó fizikai
helyek (IP-címek), illetve a tartományhoz tartozó levelező-kiszolgálók listája.
A DNS a felelős azért, hogy IP címek helyett domain neveket használhassunk, azaz a nevekhez a
fent leírt adatbázis alapján szolgáltatja az IP címet, ami alapján a tényleges kommunikáció
elindulhat. A DNS pontos működését most nem tárgyaljuk.
Lássunk egy példát:
Ha a böngészőbe beírjuk, hogy www.origo.hu, akkor ez valójában egy webkiszolgáló IP címét
jelenti. A böngésző pusztán a név alapján nem tudja azonosítani a hozzá tartozó IP címet.
Ezért a számítógépen beállított névkiszolgálóhoz fordul, elküldi neki a nevet, és az
visszaadja az IP címet, ha létezik ilyen összerendelés. Ebből az is következik, hogy ha
nincs a gépünkön beállítva, hogy a névfeloldáshoz milyen DNS szerverhez kell fordulni,
akkor nem tudjuk az internet szolgáltatásait név szerint használni.
Érdekességképpen beírhatjuk a böngésző címsorába, hogy 195.228.240.145, akkor névfeloldási
procedúra nélkül, azonnal az ORIGO portált nyitja meg.
DNS szerver:
Olyan kiszolgáló számítógép, ami képes arra, hogy egy hozzá érkező kérésre, az abban
található névhez lekérje a megfelelő IP címet, és azt visszaküldje. Ha mi internet
előfizetéssel rendelkezünk, akkor az internet szolgáltatónk megadja a saját DNS
szervereinek a címét, és a gépünkön, a TC/IP beállításoknál ezt kell beállítani. Az is
lehet, hogy az internetre csatlakozáskor a gépünk automatikusan kap IP címet, és vele
együtt megkapja a DNS szerverek IP címeit is. Ha a gépünk egy lokális hálózat tagja, pl.
a munkahelyünkön, akkor gyakran előfordul, hogy a DNS szolgáltatást egy helyi szerver
végzi, és a külső internet címekhez tartozó neveket az kéri le a DNS adatbázisából.
Web cím (url, web address):
A webcím, vagy URL (Uniform Resource Locator), magyarul
egységes erőforrás-azonosító rövidítése. Az Interneten megtalálható bizonyos erőforrások (például
szövegek, képek) szabványosított címe. Először Tim Berners-Lee
(Tim Berners-Lee a bal oldali képen látható) alkotta meg a World Wide Weben való használatra. A webcím az Internet
történetének fontos újítása. Egyetlen url összefoglalja a cél megtalálásához
szükséges négy alapvető információt, ezek a következőek:
1. A protokollt, amit a célgéppel való kommunikációhoz használunk.
2. A szóban forgó gép vagy tartomány nevét.
3. A hálózati port számát, amin az igényelt szolgáltatás
elérhető a célgépen (nem kötelező).
4. A fájlhoz vezető elérési utat a célgépen belül.
Nézzünk meg egy egyszerű hétköznapi webcímet:
http://www.pentaschool.hu:80/szakirodalom/
A http határozza meg a kapcsolathoz használt protokollt. A protokoll neve után kettőspontot
kell írni. A www.pentaschool.hu adja meg a célgép, célszerver tartománynevét. Ez elé két
perjelet kell írni. A 80 adja meg a célgép azon hálózati portszámát, amin kérésünket várja,
ez elé kettőspontot kell írni. Ennek megadása nem kötelező, a szerver automatikusan az
alapértelmezettet használja, mivel a http protokoll alapértelmezett portszáma a 80. A
/szakirodalom a kért elérési út a célgépen, azaz a célkönyvtár. Ezt csak akkor kell
megadni, ha az elérni kívánt objektum könyvtárban van. Ez a rész mindig egy perjellel kezdődik.
A tartománynév helyett megadhatunk IP címet is. Erre akkor lehet szükség, ha például a
célgéphez nem tartozik semmilyen regisztrált tartománynév. A legtöbb böngésző esetében
nem kell a http:// részt begépeljük egy weblap eléréséhez, mivel általában úgyis ezt
használjuk. Egyszerűen begépelhetjük a lap címét, például: 'www.pentaschool.hu/szakirodalom/'.
A webhely fő lapjának megtekintéséhez általában elég a tartomány nevét beírni, például
'www.pentaschool.hu'.
Szerver oldali megoldások:
Az alap HTML dokumentum elérése úgynevezett kliens-szerver modellben történik. Ez azt
jelenti, hogy a kliens, azaz az olvasó lekéri az oldalt a szervertől. A szerver az oldalnak
megfelelő tartalmat továbbítja a kliensnek, aki azt megjeleníti. A dinamikus tartalom
esetében a szerver képes a kliens vagy az előre megírt program igényeinek megfelelően
szerkeszteni az oldalt. Ez a szerver oldali megoldások alapja. A weboldal ebben az esetben
nem egy statikus állomány a rendszerben, hanem a szerver oldalon működő program kimenete.
A program megfelelő vezérlésével biztosíthatóvá válik a kliens igényeinek kielégítése.
Ezek a megoldások természetesen erőforrást igényelnek a szerver gépen, mivel minden kliens
minden kérését ott kell feldolgozni.
Alkalmazásuk abban az esetben javasolt, ha statikus módszerekkel nem, vagy csak nehezen
lehet megoldani az adott feladatot. Ilyen feladat például az, ha adatbázisban vagy más
háttértárolókban lévő adatokat szeretnénk megjeleníteni, elmenteni, módosítani vagy
törölni; élő kapcsolatot akarunk létesíteni kliens gépek között a szerveren keresztül
vagy csak olyan funkciókat akarunk készíteni a weboldalunkra, amik szükségessé teszik a
szerver oldali technológiát (regisztráció, belépés, számláló, vendégkönyv, szavazás,
dinamikus testre szabhatóság, stb..). A szerver oldali technológiákat minden esetben a
rendelkezésünkre álló szerver igényeinek megfelelően készítjük el a szükséges nyelven.
Az oktatás során természetesen a php nyelvet alkalmazzuk.
A webszerver működése:
Miután megismertük az alapfogalmakat, nézzük meg, hogy a gyakorlatban hogyan is működik
ez. A lenti grafikus ábra (1. ábra) szolgál a működés leegyszerűsített szemléltetésére.
Nézzük meg először az ábrát és alatta lesz a magyarázat.
|
|
|
1. ábra: Webszerver működése |
Az értelmezésben induljunk el a kliens gépektől. Ezek a számítógépek azok, amelyek az
otthonainkban az asztalon pihennek és internetes kapcsolattal rendelkeznek. Az ábrán
azért van több gép, hogy szemléltesse: egy webszerver rengeteg kliens gépet képes egyszerre
kiszolgálni. Amikor beírunk egy internetes címet (pl.: http://www.pentaschool.hu/), akkor a zöld színű nyíl jelzése alapján, az interneten keresztül eljutunk
a webszerver számítógéphez, amin a kért oldal található. Természetesen közben történik még
pár dolog, amiket a fenti ismertetésekben leírtunk, azaz elmegy a beírt cím a
DNS szerverhez azonosításra, majd továbbít bennünket a webcímhez tartozó
IP címre. Az index oldal az adott webhely fő
oldala. A neve is index.html, vagy index.php, stb.. attól függően,
hogy milyen technológiával készült az oldal. Ha az adott webhelyen van index oldal,
akkor a főoldal megjelenítéséhez elegendő csak a tartomány nevét
beírni, pl.: www.pentaschool.hu.
Ha a gyökérkönyvtárban akarunk elérni egy elemet, ami nem az index oldal,
akkor meg kell adnunk a tartománynév után az elem nevét is, ami perjellel
kezdődik, pl.: www.pentaschool.hu/rolunk.php.
Ha például a webhely egyik alkönyvtárán belül jelenítünk meg egy elemet, akkor
a teljes elérést meg kell adni, pl.: http://www.pentaschool.hu/teszt/allami.php
. Az index oldal tehát a webhely legfőbb lapja, ami alapértelmezettként
megjelenik, ha beírjuk a böngészőbe a tartománynevet.
A szerver gépen fut a webszerver program. Ez jelen ábránkon
egy Apache webszerver, mivel az oktatásban is ezt fogjuk használni.
A webszerverünk előkeresi a kért dokumentumot, majd 'végigolvassa' a tartalmát. Ha nem talál
benne szerveroldali kódot, azaz jelen esetünkben Php kódot, akkor egyből mehet vissza a
megjelenítendő oldal a kliensek felé, azaz Végső HTML kimenet lesz.
Ha a webszerver Php kódot talál, akkor lefuttatja a Php értelmező programot. A Php értelmező
elvégzi a Php kódban megadott műveleteket, majd a kész oldalból itt is Végső HTML kimenet lesz.
Itt elhelyeztünk még egy adatbázist is az ábrán, mert az oktatásban lesz adatbázis feladat. A
Php értelmező lekérdezi az adatokat az adatbázistól, ha van erre vonatkozó
művelet a Php kódban, majd elhelyezi a HTML kódban a kapott
eredményt és ezután lesz az oldalból Végső HTML kimenet. Természetesen az adatbázissal
történő kommunikáció csak akkor jön létre, ha erre utasítást adunk a Php kódban,
azaz valamilyen adatbázis kezelő műveletet hozunk létre. Ha nem, akkor az adatbázis
kapcsolat kimarad. A végső HTML oldal az interneten
keresztül visszakerül a kliens gép böngészőjébe és a böngészőben a felhasználó előtt
megjelenik a kért webhely tartalma.
NAGYON FONTOS megértenünk azt, hogy a 2.-3.
leckében, amikor majd a webszervert telepítjük,
nem csak egy programot telepítünk. Telepítjük az összes olyan alkalmazást, ami a webszerver
fenti ábra szerinti zökkenőmentes működéséhez szükséges. Ez azért lehet megtévesztő, mert a
webszerver egy összefoglaló név is lehet, ami egy működő webszerverre utal az összes kiegészítő
programjával együtt. Szakmailag azonban a webszerver nem más, mint egyetlen szerver program,
jelen esetünkben az Apache, ami magában
még nem elég ahhoz, hogy Php kódokat futtassunk.
Kell még egy Php értelmező is és jelen
esetünkben egy MySQL adatbázis program is. A sok
kis apró alkalmazásról nem is beszélve, mint például az adminisztrációs programok, banner
menedzserek (reklámokhoz), vagy statisztikai alkalmazások. Most nézzük meg, hogy a Php
értelmező mikor lép működésbe.
A Php működése:
Az eddigiek alapján már nagyjából kialakulhatott bennünk egy kép a Php értelmező működéséről,
de most pontosítsuk ezt a tudást. A Php kódokat a Html kódok közé ágyazzuk be. Tulajdonképpen
az elhelyezés lényegtelen, lehet a kód a Html kódok előtt, után, vagy közben egyaránt. Egy
Html oldalon több Php kódrészlet is lehet külön-külön, vagy írhatjuk az összes kódot egybe.
A Php nagy mozgásteret biztosít ezen a téren is, igazából nincsenek megkötések.
A php kódrészletek mindig egy Php nyitó tag-gel
kezdődnek és egy záró tag-gel végződnek. Ez
nagyon fontos, hiszen a webkiszolgáló szerver ebből fogja tudni, hogy Php kódhoz érkezett
és indítani kell az értelmezőt. A Php nyelvben rendszeresített nyitó tag
a következő: <?php Ezzel kezdődik
minden Php kód. A záró tag a következő lesz: ?>
Ezzel végződik a Php kód.
A Php beállításoktól függően lehetőség van rövidített nyitó tag alkalmazására, ilyen esetekben
a nyitó és záró tag-ek: <? ?> Nagyon
fontos még az is, hogy ha egy Html lapon Php kódot
helyezünk el, akkor a fájl kiterjesztése *.html-ről
*.php-ra változik. Tehát a Php kódokat
tartalmazó fájlok kiterjesztése minden esetben .php.
Mielőtt folytatnánk, nézzük meg a lenti
ábrát. A lenti 2. ábrán látható egy egyszerű példa, nézzük meg figyelmesen.
|
| |
2. ábra: Php működése |
Az ábrán tehát jól látható, hogy php kód a html kódok között helyezkedik el. A
webszerver értelmezi a kódot sorról sorra és amikor elérkezik a 10. sorhoz
, megtalálja a php nyitó tag-et. Innentől kezdve minden sorra futtatja a Php
fordító programot egészen addig, amíg el nem érkezik a Php záró tag-hez, ami jelen példánkban
a 12. sorban található. A záró tag-et követően nem alkalmazza a
php fordítót egészen addig, amíg újabb nyitó tag-et nem talál. Az ábrán látható példában
csak egy Php sor van a 11. sorban, ami a print függvénnyel (erről
majd később tanulunk) kiírja az idézőjelekben megadott 'Üdvözöllek'
szöveget. A webszerver a Php értelmezőt felhasználva elkészíti a végleges kimeneti
HTML kódot, ami a lenti képen látható.
|
| |
3. ábra: Php eredménye |
A végleges kimeneti HTML kódban tehát jól látható, hogy már csak a kiírt szöveg jelenik meg.
Ha a látogató megnézi a böngészőben az oldal forrását, akkor a fenti képen látható kódot fogja
látni és a Php kódnak nyoma sem lesz benne. Ez azért van, amit eddig tanultunk, tehát a Php
kód a szerver oldalon kerül feldolgozásra és a klienshez már csak az eredmény jut el, ha van
ilyen. Sok olyan Php alkalmazás létezik, ahol nincs látható eredmény, például a látogatók
mozgásának követése, látogatottság számláló, stb. Ezekben az esetekben a felhasználó nem is
észleli, hogy valamilyen php művelet történt, hiszen nincs látható eredménye. Az előző
példára visszatérve, a látogató a böngészőjében a lenti képen látható eredményt
fogja kapni.
|
| |
4. ábra: Böngészőben megjelent eredmény |
A php értelmező működhet különálló programként a szerveren, vagy lehet a szerver programban
alkalmazott modul egyaránt, ez nem befolyásolja a működés elméletét. Ezzel meg is tanultuk
a Php működését, nézzük meg, hogy milyen alkalmazási területei lehetnek.
A Php alkalmazásának területei:
Itt most ki lehetne jelenteni nemes egyszerűséggel, hogy minden, ami internet. A Php ugyanis
a mai formájában minden lehetséges feladatot képes gyorsan és biztonságosan ellátni, ami
az interneten szükséges. Alkalmazhatjuk a nyelvet egyszerű kis scriptek formájában olyan
alapvető feladatok elvégzésére, mint a dátum vagy az idő megjelenítése, de ugyanakkor
felépíthetünk komplett portálokat is. A lehetőségeknek csak a képzeletünk szabhat határokat.
Mindig az adott feladat határozza meg azt, hogy egy oldalon belül kell-e, és ha igen, akkor
milyen mértékben kell szerveroldali technológiákat alkalmaznunk. A leggyakoribb az, amikor
a weboldalaknak csak egy kis részében alkalmazzuk a Php-t, azaz elkészítünk egy vendégkönyvet,
vagy számlálót, esetleg szavazást és ezt egyszerűen beágyazzuk a HTML forrásba. Készíthetünk
olyan dinamikus weboldalakat, vagy webes vásárlói felületeket, amelyek teljes mértékben
adatbázisból táplálkoznak, és ilyen esetekben már az egész oldal felépítésének a Php lesz
az alapszerkezete. Minden projektnél gondoljuk át alaposan, hogy mit szeretnénk elérni és
megvalósítani és ennek megfelelően alkalmazzuk a Php-t.
Php-s webtárhelyek az interneten:
Mint azt említettük korábban, a 2. és 3. leckében lesz szó arról, hogy hogyan lehet
beüzemelni egy webszervert a saját gépünkön. Természetesen lehetnek olyan tanulók, akik
nem tudnak, vagy nem akarnak saját gépükre szervert telepíteni, az Ő számukra készült ez
a kis leírás. A leckékben készített Php programok tesztelésére szükség lesz egy olyan
webszerverre, ami képes a Php kódok értelmezésére és lehetőleg rendelkezik MySQL
adatbázissal is. Erre a szerverre fel kell másolnunk az elkészített programokat. Azt a
tárterületet, amit erre a célra használhatunk, web-tárhelynek nevezzük. Igényelhetünk
saját tárhelyet ingyen, különböző webszolgáltatóknál. Néhány példa: Ultraweb, Freeweb,
LZD.Hu, CJB Network,
Atw.hu. Az ingyenes
tárhelyeknek természetesen megvan a maga hátránya. Legtöbbször reklámokkal díszítik az
oldalakat és jogukban áll a tartalmat auditálni és indoklás nélkül törölni adott esetekben.
A másik lehetőség a fizetős webtárhely. Ebben az esetben bérelhetünk egy webtárhelyet
havi vagy évi fix összegért, és ennek megfelelően kapunk egy tárhelyet a megrendelt
szolgáltatásokkal. Itt az ár fogja meghatározni azt, hogy a tárhelyünk mekkora fizikai
méretekkel bír, milyen extra szolgáltatásokat kapunk, mint pl. webmail, adatbázis,
szerver oldali lehetőségek, stb. Ilyen szolgáltatók például a következők: Worldinternet, Webenlét, Tárhelyek.hu, Intrex hosting, Aisthesis. Az
ilyen bérelt tárhelyeken már szabadon rendelkezünk a tartalmak felett és a megengedett
kereteken belül és a szabályok betartásával bármit publikálhatunk.
Az egyik legköltségesebb lehetőség a saját szerver üzemeltetése. Itt elsősorban
vásárolni kell egy webszervert a boltban, ami nem más, mint egy komplett számítógép,
megbízható komoly hardverekkel, nagy tárkapacitással és gyors, sokszor dupla processzorral.
Az így vásárolt szervert ezután beállíthatjuk egy szolgáltató szerver termébe, ahol havi
vagy évi fix összegért üzemelhet a szerverünk. Ezt azonban már mi tartjuk karban, mi
ellenőrizhetjük és akár lehetünk tárhely szolgáltatók is. A webszervert beállíthatjuk a
szobánkba is, ha az internetkapcsolatunk elég gyors és megfelel a várható forgalom
elvárásainak. Ehhez hasonló megoldás lesz az, ami a 2. és 3. leckében szerepel, azaz a
saját webszerver telepítése.
Ezzel el is érkeztünk a lecke végéhez. Megismerhettük a Php történelmét a kezdetektől
egészen napjainkig. Megtanultunk néhány alapfogalmat, amikre szükségünk lesz a munkák
során. Ezután a webszerver és a php működésével foglalkoztunk. A következő leckében
megismerjük, hogy hogyan lehet saját webszervert telepíteni a számítógépünkre Windows
operációs rendszeren.
|