Routing web php r
Bárki, aki érdekelt kompatibilitás SEO, REST stílusú URL-t. Apache tehetünk routing URL használatával mod_rewrite szabályokat. de ez nagyon nehéz és hibára hajlamos. Miért nem használja a PHP, amely maga kezeli a routing is?
Követelmények és telepítés
Aura.Router a PHP verzió 5.4 +. Akkor telepíteni sokféleképpen:
- Letöltés ZIP vagy tar labdát GitHub.
- Ha ön használ Git, töltse le a parancssorból:
Miután letöltötte Aura.Router, akkor megjelenik egy könyvtár fájl szerkezetét az alábbiakban:
Minden forrás fájl a könyvtárban src. és ne legyen PSR-0 Normál üzembe helyezés. Minden egység tesztek tesztek könyvtárban. akkor a teszteket, utalva belül PHPUnit tesztek könyvtár (csak győződjön meg róla, hogy telepítette PHPUnit).
Munka Aura.Router
Mod_rewrite minimális szabályokat kell írni. htaccess jelezze a beérkező kérelmek egyetlen belépési pont.
A fenti érvényesítési szabályok meglévő fájlokat és mappákat, és adja meg az összes többi kéréseket index.php.
Vagy, ha a PHP, beépítik a szerver, akkor fut valami hasonló a következők:
Aura.Router négy fájlokat src / Aura / Router Router mappát: Map.php. Route.php. RouteFactory.php és Exception.php. RouteFactory egy osztály gyári létrehoz egy új objektumot útvonal. RouteFactory tartalmaz newInstance () módszer. amely kezeli az asszociatív tömb. Az értékeket át a Route osztály konstruktora.
Útvonal objektum egy egyedi útvonalon név, útvonal, paraméterek, értékek, stb Soha ne használjon egy példánya Route helyett közvetlenül kell használni RouteFactory vagy kártya.
Útvonal és RouteFactory vesz egy asszociatív tömböt az alábbi gombokat:
- neve - egy string, hogy a neve az útvonal.
- ösvény - egy string, hogy az az út, erre útvonal aggregátumok marker lehetőségeket.
- params - tömb paraméterek jelentik markerek rendszeres részminták.
- értékek - egy sor alapértelmezett paraméterek értékeit, ha azokat nem található.
- módszer - ez a karakterlánc vagy tömb HTTP módszerek REQUEST_METHOD szerver kell egyeznie az ezeket az értékeket.
- biztonságos -, hogy a szerver használja HTTPS kérést.
- routable - ha igaz, ez az útvonal is egyeztetett, és ha nem, akkor csak akkor használható, hogy hozzon létre egy utat.
- is_match - hívott függvény, hogy értékelje az útvonal.
- generál - a hívott függvény útvonal létrehozásához.
- name_prefix - string előtag a nevét.
- path_prefix - vonallal jelölt útvonal előtag.
Ne aggódj túl sokat a params módszer. Az alábbiakban néhány példát.
osztály térkép gyűjtőhelyre URI útvonalakat. Map kivitelező veszi RouteFactory és az útvonalak egy tömbben kapcsolócsoportja. Ez lehetővé teszi a külön konfigurációja és konstrukciója útvonalak (útvonalat).
Felveheti az egyes útvonalakat a térképen tárgy az ő módszere add (). vagy csatolja számos úton a csatolja () módszer. Bármelyik módszert még nem adtunk az útvonalról, az útvonal minden jellemzőjével üzletek a térképen (térkép) definíciók tulajdonság, ami egy tömb.
alapvető használat
A legegyszerűbb módja annak, hogy hozzon létre egy példányt a tárgy térkép szükséges instance.php fájl található scripts könyvtárban.
Ezen felül, akkor létrehozhat egy objektumot kézzel, amely pontosan instance.php script megy egyébként.
Ezután meg kell adni útvonalak a tárgy segítségével, az ő módszere add ().
add () metódus egy útvonal nevét, útvonalát, és az asszociatív tömb. Mint korábban említettem az értékeket tartalmazza az alapértelmezett értékek a tömb paraméterek. Így a példában az útvonal „olvasni”, akkor láthatjuk az alapértelmezett formátuma mindig „HTML”, ha nincs megadva.
Akkor vajon miért van, hogy az alapértelmezett formátum? REST alkalmazások esetében, a vezérlő és a hatás ugyanolyan. Adatszolgáltatás eltér formátumban. Így nem szabad megismételni ugyanazt a kódot az egyik fellépés a másikra. Vegyük például az URI:
Szükséges adatok kiadása mindenki számára, de a különböző formátumokat, mint például a JSON, HTML, és az atom. Így például, ha egyik formátum jelenik meg:
Aztán elviszi a kérést HTML.
Az igazi API REST, a fájl kiterjesztése nem szabad használni, hogy adja meg a kívánt formátumot. Az ügyfelek ösztönözni kell, hogy fogadja el a kérelmet a HTTP-fejléc.
Matching egy útvonal
Miután az útvonalakat adtak, akkor szeretné tudni, hogy melyik utat kért a felhasználó. Ez azért lehetséges módszerrel match () térkép objektumot. Belül tárgy térképek IsMatch hívás módszer () Útvonal objektumot. A módszer Match (). van, hogy menjen végig, és $ _SERVER értékek, az alábbiak szerint:
Lehet, hogy miért van, hogy menjen végig, valamint a kiszolgáló értéket. Miért nem kapok Aura.Router utat magának a tömb $ _SERVER mentek? Ez bizonyos rugalmasságot.
Ha egyezést talál, akkor a metódus visszaadja egy példány a Route objektumot. egyébként false. Ha megvan egy objektumot, amely elérheti az értékeit, mint például:
Ez az érték a $ útszakaszok nyomvonali> értékek, tudjuk, hogy milyen vakolás, milyen típusú, milyen módszerrel akarunk hívni a felügyelő.
szállítási útvonal
Ha az útvonal nem található, könnyen létrehozhat egy vezérlő objektum a megfelelő módszer. Ez az egyszerű példa venni a Aura dokumentáció:
Micro Framework útvonal
Néha lehet használni Aura a mikro-szerkezetét. Azt is hozzá lehet rendelni a vezérlő egy névtelen függvényt:
Ha Aura.Router például mikro-szerkezetet, akkor a vezérlő néz ki, mint az alábbi példa:
Útvonal létrehozása útvonal
Akkor létrehozhat egy útvonalat az Ön véleménye. Ez úgy lehetséges, az eljárás generál kártya () metódus belsőleg hívásokat generál () Router objektumot.
Röviden gépelés "blog / olvasni / 42.atom". de fúvósszekcióban kevésbé rugalmasak és nehezebb változtatni az útvonalat. Tekintsük a következő példát:
Mi történik, ha meg akarja változtatni / blog / olvasás / 42.atom a / cikk / view / 42.atom. Vagy, mi történik, ha egy ügyfél akar menni egy többnyelvű honlapot? Ha kódolva utak esetleg meg kell változtatni azokat sok helyen. generál () metódus mindig nagyon hasznos.
A második érv hozzá () egy asszociatív tömb. Akkor át a hívást funkciók is_match kulcsokat. amelyet akár vissza igaz vagy hamis. És értékétől függően, hátha visszatér útvonalak megfelelő () metódust. Például:
De ha http_referer example.com, nem tudjuk betölteni a tartalmat. Akkor át a saját függvényhívás, mint fent. Ez teszi Aura.Router rugalmasabb.
következtetés
Ebben a cikkben, megbeszéltük néhány alapvető és fejlett funkciók a web használatát Aura.Router útvonal.
Zakzat sablon Amiro CMS az interneten.
- - - - - - - - - - - - - - -