Számítógépes dokumentáció
Programozás PHP-ben. A hetedik kiadás. Sablonokkal való munka. Fejlesztse ki sajátját és használja a meglévő megoldásokat.
Ebben a kiadásban olyan sablonokról beszélünk, amelyekről van szó, miért van szükség, és miért használják majdnem mindent. De először, mint mindig, néhány hírt.
És a hír az, hogy a verzió a PHP 4.1.0. amelynek létrehozásáról az előző kiadás alkalmával beszéltem. Az igazság eddig csak forráskód formájában érhető el (pl. A www.php.net letöltési részében a windows binárisok a keresés eddig használhatatlan). Egyébként a Windows platformon lévő PHP-felhasználók is elégedettek lesznek azzal, hogy ebben a verzióban a PHP-fejlesztők sokkal gyorsabban és stabilan dolgoznak a Windows alatt. A hivatalos bejelentés változásainak teljes listáját megtekintheti (angol nyelven). Kérje a PHP új verzióját a www.php.net és a www.php4win.com webhelyen.
És most vissza a témához.
Mi a sablon?
Mint már tudjuk (ez az első kiadásban szerepel), a PHP beágyazott nyelv. Ie annak kódja a HTML oldalon belül helyezkedik el, és dinamikus tartalom generálásával foglalkozik. A legegyszerűbb példát fogom adni:
Tehát a sablonok olyan mechanizmusok, amelyek lehetővé teszik, hogy többé-kevésbé megszabaduljon a kód szoros összerendelésétől a webhely megjelenéséig, és megkönnyítse a dinamikus HTML kódlapok létrehozásának feladatát. Ennek a mechanizmusnak a legfontosabb elgondolása, hogy sok "HTML" kódot tartalmaz, amelyekből a tervezőből származó kockákból felkeresi az oldal bármely oldalát.
A legegyszerűbb sablonok
A tempók használatának legegyszerűbb módja, ha több olyan változót hoz létre, amelyek HTML kódot tartalmaznak. Az oldal kódja magában foglalja az ilyen változókból származó HTML kód egyesítését az eredmény eléréséhez szükséges adatokkal. Lássuk például, hogy az ugyanazon oldal generálása a legegyszerűbb sablonok segítségével nézhet ki. Itt nem használtam a közös csomagokat, mert csak a fő ötletet szeretném megmutatni.
A sablon.php fájl tartalmazza az összes szükséges sablon leírását. Ha megnézzük az ebben a fájlban leírt változók tartalmát, észrevehetjük, hogy ez csak ugyanaz az oldal, de sok részre oszlik, amelyek között be kell illeszteni az adatokat.
Az index.php fájl magában az oldalépítési kódot tartalmazza
Természetesen ez a kód nagyon szörnyű, és így (remélem) valójában senki sem. De az alapötlet az oldal HTML kódjának "összegyűjtéséről" a darabokból, ez a példa jól mutatja.
Tény, hogy a fő probléma a fenti kódot, hogy ez nem teszi lehetővé, hogy teljesen megszabadulni a HTML kód belsejében a PHP kódot, mert itt minden darab HTML kódot tárolja külön változtatható. Képzeld el, hogy hány ilyen változó legyen egy többé-kevésbé összetett oldalra. És egyébként, annak ellenére, hogy a HTML kód közvetlen helyezni egy külön fájlban, de kapcsolata az eredmények PHP kód beégetett a PHP kódot (mint minden Association HTML és PHP kódot bedrótoztak).
A legtöbb probléma megoldható egy egyszerű rendszerrel a HTML sablonok adatcseréhez. Az egyiket a következő részben vesszük figyelembe.
Sablonok használata adatcserével
Az adathelyettesítésen alapuló rendszerek közötti fő különbség az, hogy bizonyos szintaxis használatával lehetővé teszik a HTML sablonokba való beillesztés helyét. Valójában minden sablonnal működő rendszer alapja ez az elv, és az egyetlen dolog, ami megkülönbözteti őket, a szintaxis, amelyet a sablonok és a rendszer által biztosított lehetőségek megadásához használnak.
De először a szintaxis rövid leírása a sablonok leírásához, amelyet ebben a rendszerben használnak. Bemutatom az EBNF-szerű rendszerbe, majd megadom a szükséges magyarázatokat.
"Kulcs" a helyettesítéshez:
A helyettesítés kulcsa a sablon szövegének része, amelyet ezt követően a függvényhez - a sablonkezelőhöz - továbbított adatokkal kell helyettesíteni. Két fő részből áll: egy név (egyedi ebben a sablonban) és opcionális alapértelmezett érték. Ezt akkor fogja használni, ha a sablon nem lett beállítva a sablon feldolgozására. Abban az esetben, ha az alapértelmezett érték nincs megadva, akkor ez a kulcs üres karakterlánccal lesz helyettesítve.
Az alapértelmezett érték a speciális feldolgozás megadására is használható. Az alábbi három különböző szintaxis típus létezik:
Amint látja, az alapértelmezett érték feldolgozásának típusa az első karakter.
Ha ez egy "#" karakter. akkor a teljes értéket úgy kezeljük, mint "a sablon sablonjának a névvel való feldolgozásának eredményét előre beállított paraméterek értékeit helyettesítésével a kulcs. „Azaz Sablon felvezető meghívjuk rekurzívan tepmleyta feldolgozása a megadott néven, és adja meg az adatok listáját helyettesíthető, és a feldolgozás eredményét a sablonok fogják használni az érték helyettesíthető.
Ha ez egy '!' Karakter. A feldolgozás hasonló az előzőhöz, azzal a különbséggel, hogy a hívó sablonok felvezető termelt hívás egyedi funkció az adott névvel és s paraméterként továbbított adatok tömb így meghatározott (a tömb struktúra ugyanaz, mint a legtöbb sablon függvények ). A funkció eredményei a helyettesítés értékeként kerülnek felhasználásra.
A speciális jelentésű szimbólumok beilleszthetők a szövegbe a megszökött szekvenciákkal:
Kihúzódó karakterek, amelyek különleges jelentéssel bírnak
A helyettesítési kulcsokon kívül
Most nézzük meg, hogyan lehet ugyanazt az egyszerű oldalt létrehozni a fenti funkció segítségével.
A sablon.php fájl tartalmazza az összes szükséges sablon leírását. Nagyon hasonlít a fájl korábbi verziójához, de itt a sablonokban a fent leírt szöveg beillesztésének szintaxisát használjuk.
Az index.php fájl magában az oldalépítési kódot tartalmazza
Amint látja, a kód sokkal kompaktabb és logikusabb lesz sablonok használatával. Ráadásul még egy ilyen egyszerű feldolgozási sablonrendszer is jelentősen leegyszerűsíti a munkáját. Lehetőséged van arra, hogy a program logikáját külön-külön és külön-külön ellenőrizzük - vizuális részét, amit valójában elértünk.
Sablonokkal való munka rendszerei
Mint korábban mondtam, az előző részben a sablonok feldolgozásához használt funkció túl egyszerű ahhoz, hogy egy valódi rendszer gyakorlati használatra alkalmas szerepét igényelje. De az interneten számos hasonló, különböző fokú "kifinomultságú" rendszert talál. Csak néhányat adok:
Történelmileg az egyik legelső ilyen rendszer a FastTemplate volt. PHP3-ra írt, és pillanatnyilag, úgy tűnik, már nem támogatott. A többiek a komplexitás és a szintaxis erejében különböznek a Temlith belül, valamint a kiegészítő szolgáltatások elérhetőségétől.
A legerősebb rendszer jelenleg Smarty-nak tűnik. Amellett, hogy egy kellően erős és rugalmas nyelv (valamint fejlett a szintaxis a nyelvtől eltérő hívás véleményem egyszerűen lehetetlen), akkor is tetszett a tulajdonságokkal, amelyek megkülönböztetik a számát feldolgozó rendszerek sablon áll abban a pillanatban. Legnagyobb figyelemre méltó tulajdonsága az, hogy képesek "sablonozni" sablonokat közvetlenül a PHP szkriptekre! Ie miután elvégezte a sablon értelmezését, a Smarty létrehoz egy PHP szkriptet, amely később sokkal gyorsabban végzi el ugyanazt a munkát.
Mert én magam nem használja a sablonokat kezelési rendszerek, inkább XML-technológiát, azt megadja a képességet, hogy megpróbálja, és hasonlítsa össze a különböző rendszerek és válassza azt, amelyik a legmegfelelőbb az Ön számára.
Emlékeztetem Önöket arra, hogy a cikkben szereplő példák forráskódját ZIP-archívum formájában töltheti le.
következtetés
A jövőben megfontoljuk a sablonrendszerek - XML és XSLT technológiák alternatíváját. Ezek a technológiák a W3C szabványok, és ezért sok támogatást, hatalmas mennyiségű dokumentációt és példát, sok programot dolgoznak fel az ilyen formátumú adatok feldolgozásával, létrehozásával, ellenőrzésével stb. A PHP kiterjesztéseket is kínál ezekkel a technológiákkal való együttműködésre, és a jövőbeli kiadásokban megvizsgáljuk, hogyan használhatja ezeket a technológiákat dinamikus weboldalak létrehozásához.