Namespace PHP: Príklad. Ako používať priestor názvov v PHP?

Premenná definuje hodnotu, môže to byť odkaz na inú premennú a jej hodnotu. V procese implementácie algoritmu premenná obvykle trvá veľa rôznych hodnôt. Konštanta ukladá iba jednu hodnotu. Objekt je nepredvídateľný: je vlastný štruktúre, obsahu a mnohým funkciám.

Oblasť názvov je kolekcia premenných, konštánt, objektov, funkcií a ďalších konštruktov vytvorených vývojárom, ktoré možno odkazovať cez názov tohto menného priestoru.

Názvy: rozsah popisu údajov a algoritmov

Názvy prvkov (premenné, konštanty, objekty, funkcie a iné konštrukty vývojára) sa nikdy neprekrývajú. Akékoľvek synonymum PHP je interpretované ako vážna chyba a v prípadoch, keď nemôže jednoznačne identifikovať problém, vývojár dostane kód, ktorý nefunguje podľa predpokladov alebo biely box v prehliadači.


Všetky mená všetkých údajov musia byť jedinečné z dôvodu globálneho priestoru. Názvy objektov a funkcií by sa tiež nemali opakovať, ale rozsah globálnej viditeľnosti je prerušený v telách objektov a funkcií. Má vlastný, miestny menný priestor a nič neumožňuje volať niečo vo vnútri, pretože je označené smerom von.
Nasledujúci príklad je klasický, ak nevenujete pozornosť priestoru názvov kľúčových slov: všetko ako obvykle. Funguje to druhé. Predpona NameSpaceTwo pred názvami funkcií určuje, s ktorou kópou sa vložte kód. Ak je prvou funkciou odstránenie globálneho kľúčového slova a operácie $ iExt = 1; presunúť doo krok vyššie, potom hodnota premennej 100 nebude vedieť ani prvú funkciu, ani druhú.

Oblasť názvov: veľa sfér opisov

V nižšie uvedenom príklade existuje spoločný súbor, ktorý používa dve vložky. Každá vložka má rovnakú funkciu scCheckName (). Ktorý z nich vyberiete, rieši programátora pomocou názvu tohto priestoru, ktorý je relevantný v správnom čase a na správnom mieste kódu.


Skutočnosť, že rovnaký názov je prítomná vo všeobecnom kóde (po fúzii vložiek) nie sú zavádzajúce z toho prostého dôvodu, že každý súbor je označený vloží svoj vlastný jedinečný názov. V prvom súbore je všetko, čo je v ňom popísané, spojené s názvom NameSpaceOne. V druhom súbore budú všetky popisy viazané na NameSpaceTwo. Akékoľvek duplicitné názvy v oboch súboroch sú povolené, ale v každom z nich musí byť každý názov prvku (premenná, konštanta, objekt, funkcia) jedinečný.

V tomto príklade zmena menného priestoru pomenovania pri volaní scCheckName () zbavila zmenu premennej $ iExt druhého menného priestoru. Preto je v príklade špeciálne vybrané slovo "zmenené" - zmena sa v skutočnosti nestala. Hodnota premennej zostáva rovnaká.

Skúšky a viacnásobné konštrukcie

Tieto jednoduché príklady ukazujú, že môžete ľahko zjednodušiť vývoj komplexných projektov, zvýšiť efektivitu, produktivitu a zrýchliť. Určite sa prvé myšlienky používania menného priestoru ihneď objavili:
  • testovanie bezpečného skriptovania nahradením "pracovných" priestorov testovacími analógmi;
  • bezpečné navrhovanie veľkýchnázvy menného priestoru a každý prvok popisu (premenná, konštanta, objekt) dlho dávajú vývojárovi príležitosť samostatne manipulovať. syntax a sémantika.
    dizajnový jazyk a moderné programovacie všeobecné pravidlo, "samozrejme" - urobil - rozpor - "neplatný" "biele plátno" pre profesionálnych vývojárov Mnoho programátorov ani nevie, kam hľadať chybové hlásenie, keď v prehliadači nie je nič (čisté biele pole). V určitom štádiu vývoja programátor si myslí, syntax a sémantiku PHP, «pracovať" stroj a výsledkom je: vaše vlastné syntax a sémantika vlastniť v rámci prípustné. Biela obrazovka - okamžite jednoznačná reakcia profesionálneho programátora a chyba je odstránená. Prečo tráviť čas na ladiaci program a pozerať sa na chyby?

    objektov, polí a namespace

    Dá sa povedať, že premenné, konštanty a funkcie - to minulé storočie, ale sú používané v rozvojových projektoch. Dobrý kód je, keď je algoritmus reprezentovaný interakciou objektov, ale nie sekvenciou správnych konštruktov.
    Pri použití pole objektov manipulovaných myšlienkou stohu a posledný (prvé) prvok poľa, môžete získať dynamiku: predmety samy "vyriešiť", ako funkčnosť by mal fungovať miesto v závislosti na situácii. V priestore PHP je menný priestor premenná osobitného druhu, ktorú predstavuje jej jedinečnýnázov je často ťažké skladať. Názvy priestoru názvov sa používajú v kóde. Ak je to reťazec, potom jeden priestor môže byť počas vykonávania skriptu nahradený iným. Ak je názovový priestor PHP používaný ako hodnota premenných, je to ešte viac sémanticky zaťažená syntax, ktorá je ešte silnejšia ako objektové pole. Cieľom je štruktúra a obsah, ktorý sa vyznačuje jednotou. Oblasť názvov je súbor objektov, prvkov a prepojení medzi nimi.
    Nemôžete robiť experimenty na bežiacom systéme, ale vďaka priestoru názvov poskytuje PHP schopnosť simulovať skutočný pracovný systém v inom priestore na účely:
  • ďalšieho rozvoja;
  • testovanie;
  • údržba atď.
  • Ak sme abstraktné zo syntaxe navrhnutej vývojármi PHP a predstavíme priestor názvov ako globálne komplexné objektové systémy, horizonty schopností sa rozširujú viackrát.

    Syntax a používanie menného priestoru

    Pole namespace PHP prijíma iba prvý krok kódu každého súboru. Všetky popisy by mali ísť až po ňom. Syntax obsahuje iba názov uvedený v bežnom zmysle slova. Urobte zmysluplné použitie správnych slov, ktoré odrážajú obsah. Je lepšie, ak je meno dlhé, ale existuje niečo, čo dáva jasné vedomosti, o ktorom priestore hovorí, čo robí, čo to popisuje, čo to znamená alebo prečo sa vytvára. Priestory sa môžu nainštalovať navzájom neurčito, ale nemali by sa zneužívať. Názov musí byť jasný, substrát je podložený a sekvencia názvov priestorov by mala mať logiku. vspôsoby použitia a aplikácie namespace, PHP umožňuje zložitého kódovanie, ale ak je to možné, je lepšie urobiť jednoduchú voľbu.
    Všeobecné pravidlo: menný priestor - a to je jeden opis súboru, použitie - tento import script využitie priestoru a účelu mu prezývku (krátke spojenie).

    je jednoduchý príklad pre uvedenie do prevádzky triedy (objekty)

    Problémom je zariadenie pre manipuláciu s reťazcami, vizuálneho štýlu prvkov stránky (popis CSS), za účelom získania objektu, súborový systém a databázy. Význam implementácie - vytvoriť v týchto piatich pozíciách, jednoduché rozhrania používať potrebné schopnosti iba prostredníctvom metód týchto objektov. Nie je dovolené priame používanie funkcií a štruktúr jazyka. V tejto úlohe sa PHP používa pre autoloading triedy. Oblasť názvov sa považuje za súbor objektov nachádzajúcich sa na určitom mieste súborového systému. Zvyčajne sú všetky objekty umiestnené v súborovom systéme v obsahu, v priečinkoch a súboroch s určitým názvom.
    Kód na ľavej strane označuje vytvorenie požadovaných piatich objektov, ale kde presne sú, nie je zadané. Kód je text vpravo avtozavantazhuvach (základný scenár), ktoré pri načítané triedy (objekty) stroj vloží požadovanú cestu k umiestnenie objektu a príponou .php.

    Tento príklad nastavenie menné priestory

    Knižnica PhpOffice /PhpWord - kvalita príklad z mnohých komplexnej hierarchie menných priestorov. Zložka položiek obsahuje prakticky celý rozsah dostupných prvkov pri vytváraní dokumentu * .docx (MS Word), ďalšie zložky obsahujúpotrebné nástroje na prácu s prvkami, odsekmi a tabuľkami.
    V skutočnosti je knižnica presťahovaná do zložky projektu na základe toho, že priestor funkčnosť PhpOffice /PhpWord potrebujú konkrétne nástroje na doplnenie a nakoniec vytvoriť vlastnú verziu rovnakého produktu.

    Nahrávanie mnoho rôznych tried menné priestory

    Použitie PHP namespace AutoLoad, kedy je potrebné stiahnuť sadu tried a objektov hierarchie rozvinutý systém je zložitý a je ťažké predstaviť, vedie k potrebe pevných štruktúr. Orientácia Developer (použitý produkt pre pokračovanie prác) je možné iba v rámci sémantiky (porozumenie projektu), v zastúpení vhodnou kombináciou slov, ktoré odrážajú skutočný význam a vzťah objektov.
    Nutnosť pre knižnice v konkrétnom projekte vedie k problému, ako spojiť vývojárov namespace a autora PhpOffice /PhpWord. Najlepšie je umiestniť tento produkt (jeho priestory a predmety) do jeho vlastného priestoru. Je veľmi dôležité si uvedomiť, že menné priestory bez modifikácie produktu pri jeho abstraktných prvkov a tried zaťaženie nie sú úspešné. Znamená to, že v priestore názvov PHP nie je možné používať interné menné priestory abstraktne a všeobecne.

    File System a lokalizácia priestorov

    V skutočnosti je namespace - za "značka" v systéme súborov cestu k požadovanému objektu. Použite názvy súborov vkvalita mien objektov je prirodzená a zvyčajná. Použitie pomenovania názvov názvových priestorov je objektívne. "Drevená" organizácia informácií je ťažká pri aplikácii a komplikuje vývoj, ale je to prirodzené zastúpenie pre objektové systémy. Problém je v tom, že fáza vývoja predstavovali určitý kód editor, ktorý kombinuje viditeľné a prezentačné zložky a jednotlivé zložky obsahu, ale žiadny takýto editor, ktorý by zabezpečil priechodná pohyb objektov a zložiek.

    Problém abstrakcie a univerzálnosti

    To je vedomie developerom a objektívne skutočnosti:
  • objektovo orientovaného programovania (OOP) poskytuje abstrakcie a schopnosť manipulovať informácie v súlade s jeho skutočnými sémantiky;
  • ​​
  • namespace vyjadrovať postoj skriptov, objektov, a nejaký zmysel projektu na súborovom systéme
  • V skutočnosti, kombinovať mená abstrakcie OOP objekty (súbory) a jeho uvedenie do súborového systému (zložky) z adekvátnu názvy útvar namepace (cesta + názov) zvládne tvorbu menných priestorov počas vykonávania skriptu. Programovanie získala silnú dynamiku vývoja, ale v prípade, že prenos procesu a záťažové fázy textovom editore (ktorý vytvoril skripty a umiestnené v strome zložiek) k myšlienke vytvorenia takejto kód, ktorý sám umožňuje zlepšiť a umiestniť v pravom systéme miesto súborov - programovanie sa zvýši na novú výšku.

    Súvisiace publikácie