Spațiu de nume PHP: Un exemplu. Cum se utilizează spațiile de nume în PHP?
O variabilă definește o valoare, dar poate fi o referință la o altă variabilă și are valoarea ei. În procesul de execuție a algoritmului, variabila are, de obicei, o mulțime de valori diferite. Constanta stochează doar o singură valoare. Obiectul este imprevizibil: este inerent să ai o structură, un conținut și multe caracteristici.
conținut
- Nume: domeniul de aplicare al descrierii datelor și al algoritmilor
- Spații de nume: multe sfere de descriere
- Testarea și designul multiplu
- Obiecte, tablouri și spații de nume
- Sintaxă și aplicație spațiu de nume
- Un exemplu simplu de clase de autoloading (obiecte)
- Un exemplu de set de spații de nume
- Încărcarea unui set de clase de spații de nume diferite
- Sistem de fișiere și localizarea spațiilor
- Problema abstractității și universalității
Un spațiu de nume este o colecție de variabile, constante, obiecte, funcții și alte constructe create de dezvoltator, care pot fi menționate prin numele acestui spațiu de nume.
Nume: domeniul de aplicare al descrierii datelor și al algoritmilor
Numele elementelor (variabile, constante, obiecte, funcții și alte modele dezvoltator) nu se intersectează. Orice asemănare de nume PHP interpretează ca o greșeală gravă, iar în cazurile în care nu se poate identifica în mod unic problema, dezvoltatorul primește codul nu funcționează conform destinației prevăzute, sau o cutie albă în browser.
Toate numele tuturor datelor trebuie să fie unice, deoarece spațiul este global. De asemenea, numele obiectelor și funcțiilor nu trebuie repetate, dar domeniul vizibilității globale este întrerupt în corpurile metodelor de obiecte și funcții. Există propriul spațiu de nume local și nimic nu împiedică să apeleze la ceva în același mod în care este indicat din exterior.
Exemplul de mai sus este un clasic dacă nu acordați atenție spațiilor de nume de cuvinte cheie: totul, ca întotdeauna. Există oa doua includere. Prefixul NameSpaceTwo înainte de numele funcțiilor specifică care este inserarea codului.
Dacă cuvântul cheie global este eliminat din prima funcție și operația $ iExt = 1 este mutată pe linia următoare, nici prima funcție, nici cea de-a doua funcție nu va cunoaște valoarea variabilei 100.
Spații de nume: multe sfere de descriere
În exemplul prezentat, există un fișier comun care utilizează două insule. Fiecare inserție are aceeași funcție scCheckName (). Pe ce alegeți, programatorul decide prin numele spațiului care este relevant la momentul potrivit în locul potrivit al codului.
Faptul că același nume este prezent în codul comun (după fuzionarea inserturilor) nu duce la o eroare din simplul motiv că fiecare fișier insert este marcat cu propriul său nume unic.
În primul fișier, tot ceea ce va fi descris în el este asociat cu numele NameSpaceOne. În al doilea fișier, toate descrierile sunt legate de numele NameSpaceTwo.
Orice duplicare a numelor în ambele fișiere este permisă, dar în fiecare dintre ele orice nume al elementului (variabilă, constantă, obiect, funcție) trebuie să fie unic.
În acest exemplu, schimbarea numelui spațiului de nume în apelul funcției scCheckName () a salvat variația $ iExt a celui de-al doilea spațiu de nume de la modificare. De aceea, cuvântul "schimbat" este evidențiat în mod special în exemplu - schimbarea nu a avut loc efectiv. Valoarea variabilei rămâne aceeași.
Testarea și designul multiplu
Aceste exemple simple arată: puteți simplifica cu ușurință dezvoltarea proiectelor complexe, pentru a îmbunătăți eficiența, productivitatea și a accelera munca. Din nefericire, primele idei ale aplicației namespace au apărut imediat:
- testarea sigură a scripturilor - prin înlocuirea spațiilor "de lucru" cu analogii de testare;
- proiectarea sigură de către echipe mari de dezvoltatori - oferindu-le spații de descriere a caracteristicilor "individuale".
De fapt, spațiul de nume este mult mai important. Limbajul PHP, spațiul de nume și descrierea fiecărui element (variabilă, constantă, obiect ...) pentru o lungă perioadă de timp pentru a oferi dezvoltatorilor o oportunitate de a manipula sintaxa si semantica.
Construirea limbajului și regula generală a programării moderne: "înțeleasă" - îndeplinită - există o contradicție - "ecranul alb" al dezvoltatorului profesionist "nu funcționează".
Mulți programatori nu sunt chiar conștienți de unde să caute un mesaj de eroare PHP atunci când nu există nimic în browser (o cutie albă curată). Într-o anumită etapă a dezvoltării sale, programatorul gândește în sintaxa și semantica PHP, "lucrează" în mod automat și rezultatul: sintaxa proprie și propria semantică în cadrul permisului.
Ecranul alb este o reacție fără echivoc a programatorului profesionist și eroarea este eliminată. De ce pierdeți timpul de depanare și vizualizarea istoricului de erori?
Obiecte, tablouri și spații de nume
Puteți spune că variabilele, constantele și funcțiile sunt ultimul secol, însă ele sunt folosite în dezvoltarea obiectelor. Un cod bun este atunci când algoritmul este reprezentat de obiecte care interacționează, mai degrabă decât de o succesiune de construcții valide.
Dacă utilizați matrice de obiecte, manipula ideea stivă și elementul ultimul (primul) din matrice, puteți obține dinamica: obiectele ei înșiși „decid“ cum să lucreze funcționalitatea site-ului, în funcție de situația existentă.
În PHP, spațiul de nume este un tip special de variabilă, reprezentat de propriul său nume unic, adesea complex. Numele spațiului de nume este folosit în cod. Dacă acesta este un șir, puteți înlocui un spațiu cu altul în timpul executării scriptului.
Dacă numele de spațiu de nume PHP sunt folosite ca valori variabile, atunci aceasta este o sintaxă încărcată mai mult semantic, chiar mai puternică decât arrays de obiecte.
Un obiect este o structură și un conținut care se caracterizează prin unitate. Un spațiu de nume este un set de obiecte, elemente și conexiuni între ele.
Nu puteți efectua experimente pe un sistem care rulează, dar datorită spațiului de nume PHP oferă posibilitatea de a modela un sistem de lucru real într-un alt spațiu în scopuri:
- dezvoltarea ulterioară;
- testare;
- întreținere etc.
Dacă vă abateți de la sintaxa oferită de dezvoltatorii PHP și prezența spațiilor de nume ca sisteme complexe de obiecte complexe, atunci orizonturile oportunităților se extind de mai multe ori.
Sintaxă și aplicație spațiu de nume
Spațiul de nume de cuvinte PHP are doar prima linie de cod pentru fiecare fișier. Toate descrierile ar trebui să fie valabile numai pentru el. Sintaxa include numai numele desemnat în sensul obișnuit al numelui.
Este esențial să folosiți cuvintele corecte care reflectă semnificația. Mai bine atunci când numele este lung, dar există ceva care oferă o înțelegere clară a ceea ce spațiu în cauză că aceasta nu descrie că ceea ce ia sau ce a creat.
Spațiile pot fi imbricate unul pe altul infinit, dar acest lucru nu ar trebui să fie abuzat. Numele trebuie să fie de înțeles, cuibul este justificat, iar succesiunea numelor spațiilor ar trebui să aibă logică.
În aplicațiile și în aplicațiile din spațiul de nume, PHP permite codificarea complexă, dar ori de câte ori există o astfel de posibilitate, este mai bine să faceți o opțiune simplă.
Regula generală: spațiul de nume este o descriere și acesta este un fișier, utilizarea este importul de spațiu într-un script de utilizare și atribuirea unui pseudonim (scurt link) la ea.
Un exemplu simplu de clase de autoloading (obiecte)
În sarcină există un obiect pentru manipularea liniilor, stilurile de proiectare a elementelor de pagină (descrieri CSS), obiectul de date, sistemul de fișiere și baza de date. Sentimentul de punere în aplicare este de a crea interfețe simple pentru aceste cinci poziții pentru a utiliza capabilitățile necesare numai prin metodele acestor obiecte.
Nu este permisă utilizarea directă a funcțiilor și construcțiilor limbii. În această sarcină, PHP folosește clasa autoloading. Spațiul de nume este considerat o colecție de obiecte situate într-un anumit loc în sistemul de fișiere. De obicei, toate obiectele sunt plasate în sistemul de fișiere prin simț, prin dosar și în fișiere cu un nume specific.
Codul din stânga indică crearea a cinci obiecte necesare, dar unde exact ele nu sunt specificate. În codul, dreapta este textul autoincarcatorul (scenariul de bază), care, atunci când clase încărcate (obiecte) introduce automat calea corectă pentru localizarea obiectului și extensia .php fișier.
Un exemplu de set de spații de nume
Biblioteca PhpOffice / PhpWord este un bun exemplu de utilizare a unei ierarhii complexe a numeroaselor spații de nume. Dosarul de elemente conține practic toată gama de elemente disponibile la crearea documentului * .docx (MS Word), alte foldere conțin instrumentele necesare pentru a lucra cu elemente, paragrafe și tabele.
De fapt, biblioteca este plasată în folderul proiectului pentru motivul că spațiul de funcționalitate PhpOffice / PhpWord este necesar să fie completat cu instrumente specifice și, eventual, să creeze o versiune proprie a unui produs similar.
Încărcarea unui set de clase de spații de nume diferite
Utilizarea PHP spațiu de nume autoload, atunci când aveți nevoie pentru a încărca un set de clase, iar ierarhia obiectelor sistem dezvoltat este destul de complicată și este greu de imaginat, duce la necesitatea de a stabili structuri rigide.
Dezvoltator Orientare (produs utilizat pentru continuarea lucrărilor) este posibilă numai în contextul semantica (proiectul de înțelegere), care este reprezentat printr-o combinație adecvată de cuvinte care reflectă valoarea reală a obiectelor și a relațiilor.
Nevoia de a folosi biblioteca într-un proiect individual duce la rezolvarea problemei cum se combină spațiile de nume ale dezvoltatorului și ale autorilor PhpOffice / PhpWord. Cel mai bun mod este să plasați acest produs (spațiile și obiectele acestuia) în spațiul propriu al proiectului.
Este important să rețineți că fără modificarea spațiilor de nume ale acestui produs la nivelul elementelor sale abstracte și al claselor de încărcare, nu va fi posibilă gestionarea. Aceasta indică faptul că în spațiul de nume PHP, utilizarea spațiului de nume intern nu poate fi efectuată abstract și universal.
Sistem de fișiere și localizarea spațiilor
În esență, spațiile de nume sunt "conturul" căii din sistemul de fișiere la obiectul dorit. Utilizarea numelor de fișiere ca nume de obiecte este naturală și familiară. Folosirea numelor de dosare ca spații de nume este obiectivă.
Organizarea "lemnului" de informații este destul de greoaie în aplicare și complică dezvoltarea, dar reprezintă o reprezentare naturală a sistemelor de obiecte.
Problema este că faza de dezvoltare este reprezentat de un editor de cod specific care combină reprezentarea vizibilă a dosarului și conținutul unui anumit dosar, dar încă nu există nici un astfel de editor, care să asigure, prin traficul de pe proiectele și dosarele.
Problema abstractității și universalității
Acceptată de conștiința dezvoltatorului și în mod obiectiv în realitate:
- Programarea orientată pe obiecte (OOP) oferă abstractizare și capacitatea de a manipula informațiile în funcție de semantica lor reală;
- Spațiile de nume reflectă poziția scripturilor, obiectelor și, în parte, semnificația proiectului în sistemul de fișiere
De fapt, care combină captarea OEP în numele obiectelor (fișiere), și pune-l pe sistemul de fișiere (dosar) cu numele de formare namepace adecvat (calea + numele), puteți controla formarea spațiul de nume în procesul de executare a scriptului.
Programarea a dobândit deja un puternic impuls de dezvoltare, dar în cazul în care procesul de transfer și încărcați faza de dezvoltare, cu un editor de text (care creează script-uri și plasat copac dosar) la ideea formării unui astfel de cod, care se permite să îmbunătățească și să fie plasate în locul potrivit la sistemul de fișiere - programare se va ridica la o înălțime nouă.
- Format JSON: descriere, exemplu
- Tipuri de variabile în Pascal: descriere, proprietăți, exemple
- Encapsularea este ceea ce? Încapsulare în programare
- PHP este o variabilă globală într-o funcție. Faceți variabilă globală în PHP
- Programare: Java. Tipuri de date
- JS foreach obiect ca design variante
- Dezvoltarea aplicațiilor pentru iOS: de unde să încep?
- Conversia de tip. Funcții rotunde și Trunc în Pascal
- BigInteger Java: lucrul cu numere mari
- jаvascript Array pentru a stoca un număr nelimitat de variabile
- String operator în Pascal - șir
- Factorial în Pascal: cum se calculează. Probe de proba
- Variabila în programare este complet caracterizată de ce?
- Declarați SQL: descriere. Transact-SQL
- Folosind indexOf (jаvascript) atunci când lucrați cu matrice și șiruri de caractere
- jаvascript expresiv: descrierea caracteristicilor
- Funcțiile de distribuție ale unei variabile aleatorii. Cum se găsește funcția de distribuție a unei…
- Python: tipuri de date, condiții, cerințe și exemple
- Funcții în Python: def. Python 3 pentru începători
- Programarea orientată pe obiecte în Python: clase, descriere și caracteristici
- Care sunt tipurile de date din Pascal?