Namespace PHP: Przykład. Jak korzystać z przestrzeni nazw w PHP?

Zmienna definiuje wartość, ale może być odniesieniem do innej zmiennej i jej wartością. W procesie implementacji algorytmu zmienna zwykle przyjmuje wiele różnych wartości. Stała przechowuje tylko jedną wartość. Obiekt jest nieprzewidywalny: jest nieodłącznie związany ze strukturą, zawartością i wieloma funkcjami.

Namespace to zbiór zmiennych, stałych, obiektów, funkcji i innych konstrukcji stworzonych przez programistę, do których można się odwoływać poprzez nazwę tego obszaru nazw.

Nazwy: zakres opisu danych i algorytmów

Nazwy elementów (zmienne, stałe, obiekty, funkcje i inne konstrukcje programisty) nigdy się nie pokrywają. Każdy synonim PHP jest interpretowany jako poważny błąd, aw przypadkach, gdy nie może jednoznacznie zidentyfikować problemu, programista otrzymuje kod, który nie działa zgodnie z zamierzeniami lub białe pole w przeglądarce.


Wszystkie nazwy wszystkich danych muszą być unikalne ze względu na przestrzeń globalną. Nazwy obiektów i funkcji również nie powinny się powtarzać, ale zakres globalnej widoczności jest przerywany w ciałach metod obiektów i funkcji. Ma własną, lokalną przestrzeń nazw i nic nie stoi na przeszkodzie, aby wywołać coś wewnątrz, ponieważ jest oznaczone na zewnątrz.
Poniższy przykład jest klasycznym, jeśli nie zwracasz uwagi na przestrzeń nazw słów kluczowych: wszystko jak zwykle. Działa na drugim. Prefiks NameSpaceTwo przed nazwami funkcji określa, z którym wstawić kod jest pobierany. Jeśli pierwszą funkcją jest usunięcie globalnego słowa kluczowego i operacji $ iExt = 1; przejdź dokrok wyższy, wtedy wartość zmiennej 100 nie będzie znała ani pierwszej, ani drugiej funkcji.

Przestrzeń nazw: wiele sfer opisów

W poniższym przykładzie istnieje wspólny plik, który używa dwóch wstawek. Każda wstawka ma tę samą funkcję scCheckName (). Który z nich wybrać, rozwiązuje programistę, używając nazwy tej przestrzeni, która jest właściwa we właściwym czasie i we właściwym miejscu kodu.


Fakt, że ta sama nazwa występuje w kodzie generycznym (po scaleniu wstawek) nie prowadzi do błędu z tej prostej przyczyny, że każdy plik wstawki jest oznaczony własną unikalną nazwą. W pierwszym pliku wszystko, co jest w nim opisane, jest powiązane z nazwą NameSpaceOne. W drugim pliku wszystkie opisy będą powiązane z NameSpaceTwo. Dowolne zduplikowane nazwy w obu plikach są dozwolone, ale w każdej z nich każda nazwa elementu (zmienna, stała, obiekt, funkcja) musi być unikalna.

W tym przykładzie zmiana nazewnictwa nazw w wywołaniu scCheckName () pozbawiła zmienną $ iExt drugiej przestrzeni nazw. Dlatego w tym przykładzie słowo "zmienił" zostało specjalnie wybrane - zmiana nie nastąpiła. Wartość zmiennej pozostaje taka sama.

Testowanie i wielojęzyczne projektowanie

Te proste przykłady pokazują, że łatwo jest uprościć tworzenie złożonych projektów, poprawić wydajność, produktywność i przyspieszyć prace. Zdecydowanie pierwsze pomysły użycia przestrzeni nazw pojawiły się natychmiast:
  • bezpieczne testowanie skryptów poprzez zastąpienie "roboczych" przestrzeni testowymi analogami;
  • bezpieczne projektowanie dużenazwy przestrzeni nazw i każdego elementu opisu (zmienna, stała, obiekt) dawno dały deweloperowi możliwość samodzielnego manipulowania. składnia i semantyka.
    Konstrukcje językowe i ogólna zasada nowoczesnego programowania: "zrozumiale" - zrobione - jest sprzeczność - "biały ekran" dla profesjonalnego programisty "nie działa". Wielu programistów nawet nie wie, gdzie szukać komunikatu o błędzie, gdy nie ma nic w przeglądarce (czyste białe pole). Na pewnym etapie rozwoju programista myśli, że składnia i semantyka PHP "działa" z automatem, a wynik: własna składnia i własna semantyka w granicach. Biały ekran - natychmiast jednoznaczna reakcja profesjonalnego programisty i błąd zostaje wyeliminowany. Po co tracić czas na debuggera i przyglądać się błędom błędów?

    Obiekty, tablice i przestrzeń nazw

    Można powiedzieć, że zmienne, stałe i funkcje są ostatnim stuleciem, ale są używane w projektowaniu obiektów. Dobry kod jest wtedy, gdy algorytm jest reprezentowany przez oddziałujące obiekty, ale nie przez sekwencję poprawnych konstrukcji.
    W przypadku używania tablic obiektów manipulowanych przez ideę stosu i ostatniej (pierwszej) elementu tablicy, można uzyskać dynamikę: obiekty sami „rozwiązać”, jak powinno działać funkcjonalności witryny w zależności od sytuacji. W PHP przestrzeń nazw jest zmienną specjalnego rodzaju, reprezentowaną przez własny unikalnynazwa często jest trudna do skomponowania. Nazwy przestrzeni nazw są używane w kodzie. Jeśli jest łańcuchem, to jedna przestrzeń może zostać zastąpiona inną podczas wykonywania skryptu. Jeśli przestrzeń nazw PHP jest używana jako wartość zmiennych, to jest ona jeszcze bardziej semantycznie załadowana, nawet bardziej wydajna niż tablice obiektów. Przedmiotem jest struktura i treść charakteryzująca się jednością. Przestrzeń nazw to zbiór obiektów, elementów i łączy między nimi.
    Nie można przeprowadzać eksperymentów w działającym systemie, ale dzięki przestrzeni nazw PHP umożliwia symulowanie rzeczywistego działającego systemu w innej przestrzeni w celu:
  • dalszego rozwoju;
  • testowanie;
  • konserwacja itp.
  • Jeśli wyjdziemy z syntaktyki zaproponowanej przez programistów PHP i wyobrażamy sobie przestrzeń nazw jako globalne, złożone systemy obiektowe, horyzonty możliwości są rozszerzane wiele razy.

    Składnia i użycie przestrzeni nazw

    Przestrzeń nazw w języku PHP akceptuje tylko pierwszy krok kodu każdego pliku. Wszystkie opisy powinny iść dopiero po nim. Składnia zawiera tylko nazwę podaną w zwykłym tego słowa znaczeniu. Wykonaj sensowne użycie poprawnych słów, które odzwierciedlają treść. Lepiej jest, jeśli nazwa jest długa, ale jest coś, co daje jasne zrozumienie, o której przestrzeni mówi, co robi, co opisuje, co robi i dla czego jest tworzone. Przestrzenie można podawać sobie nawzajem w nieskończoność, ale nie powinno się tego nadużywać. Nazwa musi być jasna, substrat jest uzasadniony, a sekwencja nazw kosmicznych powinna mieć logikę. Wwykorzystanie aplikacji i przestrzeń nazw, PHP umożliwia złożone kodowanie, ale zawsze, gdy istnieje taka możliwość, lepiej jest opracować prostą opcję.
    Reguła ogólna: przestrzeń nazw jest opisem i jest to jeden plik, użycie to import przestrzeni do skryptu użytkowania i przypisanie jej pseudonimu (krótki link).

    Prosty przykład automatycznego ładowania klas (obiektów)

    Zadanie ma obiekt do manipulowania łańcuchami znaków, stylami stylów stron (opisy CSS), obiektami dat, systemami plików i bazami danych. Znaczenie implementacji - stworzenie w tych pięciu pozycjach prostych interfejsów do wykorzystania niezbędnych zdolności tylko poprzez metody tych obiektów. Nie jest dozwolone bezpośrednie korzystanie z funkcji i struktur języka. W tym zadaniu PHP jest używane do automatycznego ładowania klas. Przestrzeń nazw jest traktowana jako zbiór obiektów znajdujących się w określonym miejscu systemu plików. Zwykle wszystkie obiekty są umieszczane w systemie plików w treści, w folderach i plikach o określonej nazwie.
    Kod po lewej stronie wskazuje na utworzenie wymaganych pięciu obiektów, ale gdzie dokładnie one są, nie jest określony. W kodzie po prawej stronie znajduje się tekst autoloadera (skrypt główny), który podczas ładowania klas (obiektów) przez automat zastępuje żądaną ścieżkę do lokalizacji obiektu i rozszerzenia pliku .php.

    Przykład zbioru przestrzeni nazw

    Biblioteka PhpOffice /PhpWord jest jakościowym przykładem użycia złożonej hierarchii wielu przestrzeni nazw. Folder item zawiera praktycznie cały zakres elementów dostępnych podczas tworzenia dokumentu * .docx (MS Word), inne foldery zawierająniezbędne narzędzia do pracy z elementami, akapitami i tabelami.
    W rzeczywistości biblioteka jest umieszczana w folderze projektu, ponieważ przestrzeń funkcjonalna PhpOffice /PhpWord musi być uzupełniona o określone narzędzie i ostatecznie stworzyć własną wersję tego samego produktu.

    Pobieranie wielu klas różnych przestrzeni nazw

    Korzystanie z przestrzeni nazw PHP autoload, kiedy trzeba wczytać wiele klas, a hierarchia rozwiniętego systemu obiektów jest dość skomplikowana i trudna do przedstawienia, prowadzi do potrzeby tworzenia sztywnych konstrukcji. Orientacja programisty (użycie produktu do kontynuacji pracy) jest możliwa tylko w kontekście semantyki (rozumienia projektu), który reprezentowany jest przez odpowiednie kombinacje słów, które odzwierciedlają rzeczywiste znaczenie i wzajemne połączenie obiektów.
    Potrzeba użycia biblioteki w pojedynczym projekcie prowadzi do problemu łączenia przestrzeni nazw autora i autorów PhpOffice /PhpWord. Najlepiej umieścić ten produkt (jego przestrzenie i przedmioty) we własnej przestrzeni projektu. Należy pamiętać, że bez aktualizacji przestrzeni nazw tego produktu na poziomie jego abstrakcyjnych elementów i klas ładowania nie powiedzie się. Oznacza to, że w przestrzeni nazw PHP używanie wewnętrznych przestrzeni nazw nie może być wykonywane abstrakcyjnie i uniwersalnie.

    System plików i lokalizacja spacji

    W istocie przestrzeń nazw jest "rysunkiem" ścieżek w systemie plików do pożądanego obiektu. Użyj nazw plików wjakość nazw przedmiotów jest naturalna i nawykowa. Używanie nazewnictwa nazw nazw jest obiektywne. "Drewniana" organizacja informacji jest uciążliwa w zastosowaniu i komplikuje rozwój, ale jest naturalną reprezentacją systemów obiektowych. Problem polega na tym, że faza rozwoju jest reprezentowana przez pewien edytor kodu, który łączy zarówno wizualną reprezentację folderów, jak i zawartość określonego folderu, ale nie ma jeszcze edytora, który zapewniałby postęp obiektów i folderów.

    Problem poboru i uniwersalności

    Jest świadomość wywoływacza rzeczywistości obiektywnej
  • zorientowanym obiektowo programowania (OOP) zapewnia pobór i zdolność manipulowania informacji zgodnie z jego rzeczywistych semantyki;
  • ​​
  • nazw odzwierciedlać stanowiska skryptów, obiektów i jakiś sens projektu w systemie plików
  • W rzeczywistości, łącząc imiona abstrakcja obiekty OOP (pliki) i wprowadzenie go do systemu plików (folder) z Poprzez odpowiednie nazwy nazw (ścieżki + nazwy) można zarządzać tworzeniem przestrzeni nazw w procesie wykonywania skryptu. Programowanie zyskała silną dynamikę rozwoju, ale jeśli proces transferu i obciążenia etapy edytora tekstu (które tworzone skrypty i umieszczone w drzewie folderów) do pomysłu utworzenia takiego kodu, który z kolei pozwala poprawić i umieścić w odpowiednim układzie miejsce pliku - programowanie wzrośnie do nowej wysokości.

    Powiązane publikacje