Пространство на имената PHP: пример. Как да използваме пространството от имена в PHP?

Променливата определя стойността, но може да бъде препратка към друга променлива и нейната стойност. В процеса на прилагане на алгоритъм, променливата обикновено заема много различни стойности. Константът съхранява само една стойност. Обектът е непредсказуем: той е присъщ на структурата, съдържанието и много функции.

Пространството от имена е колекция от променливи, константи, обекти, функции и други конструкции, създадени от разработчика, които могат да бъдат споменати чрез името на това пространство от имена.

Имена: обхват на описанието на данни и алгоритми

Имената на елементите (променливи, константи, обекти, функции и други конструкции на разработчика) никога не се припокриват. Всеки синоним на PHP се тълкува като сериозна грешка и в случаите, когато не може да идентифицира уникално проблема, разработчикът получава код, който не работи по предназначение или бяла кутия в браузъра.


Всички имена на всички данни трябва да бъдат уникални поради глобалното пространство. Имената на обектите и функциите също не трябва да се повтарят, но обхватът на глобалната видимост се прекъсва в телата на методите на обектите и функциите. Той има свое собствено, локално пространство от имена и нищо не пречи да се обади нещо вътре, тъй като е маркирано външно.
Следният пример е класически, ако не обръщате внимание на ключовата дума namespace: всичко както обикновено. Работи втората включва. Префиксът NameSpaceTwo, преди имената на функциите да посочват с коя вмъкване се взема кода. Ако първата функция е да премахнете глобалната ключова дума и операцията $ iExt = 1; преминете къмстъпка по-висока, тогава стойността на променливата 100 няма да знае нито първата функция, нито втората.

Пространство от имена: много сфери на описания

В примера по-долу има общ файл, който използва две вложки. Всяка вложка има същата функция scCheckName (). Кой да избирате, решава програмиста, използвайки името на това пространство, което е подходящо в точното време и на правилното място на кода.


Фактът, че едно и също име присъства в общия код (след обединяване на вложки), не води до грешка поради простата причина, че всеки вмъкнат файл е маркиран със собствено уникално име. В първия файл всичко, което е описано в него, е свързано с името на NameSpaceOne. Във втория файл всички описания ще бъдат свързани с NameSpaceTwo. Всяко дублирано име в двата файла е позволено, но във всеки един от тях всяко име на елемент (променлива, константа, обект, функция) трябва да бъде уникално.

В този пример, промяната на именното пространство от имена при извикване на scCheckName () е лишила променливата $ iExt от второто пространство от имена от промяната. Ето защо в примера е специално подбрана думата "променена" - промяната всъщност не се е случила. Стойността на променливата остава същата.

Тестване и многоезичен дизайн

Тези прости примери показват, че е лесно да се опрости разработването на сложни проекти, да се увеличи ефективността, производителността и да се ускори работата. Определено първите идеи за използването на пространството от имена се появиха веднага:
  • безопасно тестване на скриптове чрез замяна на "работните" пространства с аналогови аналози;
  • безопасно проектиранеимената на пространството от имена и всеки елемент от описанието (променлива, константа, обект) отдавна дават на разработчика възможност да се манипулира самостоятелно. синтаксис и семантика
    Езикови конструкции и общо правило на модерното програмиране: "разбираемо" - направено - има противоречие - "бял екран" за професионален разработчик "не работи". Много програмисти дори не знаят къде да търсят съобщение за грешка, когато в браузъра няма нищо (чисто бяло поле). На определен етап от своето развитие програмистът си мисли синтаксиса и семантиката на PHP, "работи" с автомата и резултата: собствен синтаксис и собствена семантика в границите. Бял екран - незабавно еднозначна реакция на професионален програмист и грешката се елиминира. Защо да прекарвате времето си в дебъгера и да гледате грешки в грешките?

    Обекти, масиви и пространство от имена

    Можем да кажем, че променливи, константи и функции са миналия век, но се използват при проектирането на обекти. Добър код е, когато алгоритъмът е представен от взаимодействащи се обекти, но не и от последователността на правилните конструкции.
    Ако използвате масиви от обекти, манипулирайте идеята за стека и последния (първи) елемент на масив, тогава можете да получите динамиката: обектите сами "решават" как трябва да работи функцията на сайта, в зависимост от ситуацията. В PHP пространството от имена е променлива от специален вид, представена от нейната уникалнаИмето често е трудно да се състави. В кода се използват имената на имената. Ако е низ, тогава едно пространство може да бъде заменено с друго по време на изпълнението на скрипта. Ако пространството от имена на PHP се използва като стойност на променливите, то тогава е още по-семантично зареждан синтаксис, дори по-мощен от обектните масиви. Обектът е структура и съдържание, което се характеризира с единство. Пространството от имена е набор от обекти, елементи и връзки между тях.
    Не можете да провеждате експерименти в работеща система, но благодарение на пространството от имена, PHP предоставя възможност за симулиране на реална работна система в друго пространство за цели:
  • по-нататъшно развитие;
  • тестване;
  • поддръжка и др.
  • Ако се абстрахираме от синтаксиса, предложен от разработчиците на PHP, и си представим пространството от имена като глобални сложни обектни системи, хоризонтите на възможностите се разширяват многократно.

    Синтаксис и използване на пространството от имена

    Думата пространството на имената PHP приема само първата стъпка от кода на всеки файл. Всички описания трябва да са само след него. Синтаксисът включва само името, дадено в обичайния смисъл на името. Направете смислено използване на правилните думи, които отразяват съдържанието. По-добре е името да е дълго, но има нещо, което дава ясно разбиране за това, за кое пространство говори, какво прави, какво описва, какво е необходимо или за какво е създадено. Пространствата могат да се инфузират безкрайно, но това не трябва да се злоупотребява. Името трябва да е ясно, субстратът е обоснован и последователността на имената на пространството трябва да има логика. вприложения използват и пространство от имена, PHP позволява сложно кодиране, но винаги, когато има такава възможност, е по-добре да се изработи проста опция.
    Общо правило: пространството от имена е описание и един файл, като се използва импортирането на пространството в скрипта за използване и му се присвоява псевдоним (къса връзка).

    Един прост пример за самозареждащи се класове (обекти)

    Задачата има обект за манипулиране на низове, стилове на стилове на страници (CSS описания), обекти за дата, файлови системи и бази данни. Смисълът на изпълнението - да се създаде в тези пет позиции, прости интерфейси за използване на необходимите възможности само чрез методите на тези обекти. Не се допуска пряко използване на функциите и структурите на езика. В тази задача PHP се използва за самозареждащи се класове. Пространството от имена се разглежда като колекция от обекти, разположени на определено място във файловата система. Обикновено всички обекти се поставят във файловата система по съдържание, в папки и файлове с определено име.
    Кодът отляво показва създаването на изискваните пет обекта, но къде точно те са, не е посочен. В кода в дясно е текстът на автозареждащия (основен скрипт), който при зареждане на класове (обекти) от автомат, замества желания път до местоположението на обекта и разширение на .php файл.

    Пример за набор от пространства за имена

    Библиотеката PhpOffice /PhpWord е качествен пример за използване на сложна йерархия от множество пространства от имена. Папката на елемента съдържа почти целия набор от елементи, налични при създаването на документ * .docx (MS Word), други папки съдържатнеобходими инструменти за работа с елементи, параграфи и таблици.
    Всъщност библиотеката е поставена в папката на проекта, защото функционалното пространство на PhpOffice /PhpWord трябва да бъде допълнено с конкретен инструмент и в крайна сметка да създаде своя собствена версия на същия продукт.

    Изтегляне на множество класове от различни пространства от имена

    Като се използва автолоад на пространството за имена на PHP, когато е необходимо да се заредят няколко класа и йерархията на разработената система от обекти е доста сложна и трудно представяна, това води до необходимостта от създаване на твърди конструкции. Ориентацията на разработчика (използване на продукта за продължаване на работата) е възможна само в контекста на семантиката (разбиране на проекта), която е представена от правилни комбинации от думи, които отразяват реалния смисъл и взаимосвързаност на обектите.
    Необходимостта от използване на библиотека в отделен проект води до проблема как да се комбинират пространствата от имена на разработчика и авторите на PhpOffice /PhpWord. Най-добре е да поставите този продукт (неговите пространства и обекти) в собственото му пространство на проекта. Важно е да се отбележи, че без да се актуализират пространствата от имена на този продукт на нивото на неговите абстрактни елементи и зареждащите класове няма да успеят. Това показва, че в пространството за имена на PHP използването на вътрешни пространства от имена не може да се извършва абстрактно и универсално.

    Файлова система и локализация на пространства

    По същество, пространството от имена е "рисуване" на пътеки във файловата система към желания обект. Използвайте имената на файловете вкачеството на имената на обектите е естествено и обичайно. Използването на имената на имената на имената е обективно. "Дървената" организация на информацията е тромава в приложението и усложнява развитието, но е естествено представяне на обектни системи. Проблемът е, че фазата на разработване е представена от определен редактор на кодове, който комбинира визуалното представяне на папките и съдържанието на определена папка, но все още няма редактор, който да предвижда развитието на обекти и папки.

    Проблемът за абстракцията и универсалността

    Приет от ума на разработчика и обективно в действителност:
  • обектно-ориентираното програмиране (ООП) дава абстракция и способност за манипулиране на информацията в съответствие с нейната реална семантика;
  • ​​
  • на пространството от имена представляват позицията на скриптовете, обектите и отчасти значението на проекта във файловата система
  • . Всъщност, чрез комбиниране на абстракцията на ООП с имената на обектите (файловете) и поставянето й във файловата система (папки) от Чрез подходящи имена (пътеки + имена) можете да управлявате формирането на пространства от имена в процеса на изпълнение на скрипт. Програмирането вече е придобило мощна динамика на развитие, но ако преведете процеса и натоварващите етапи на разработка от текстов редактор (който създава скриптове и се поставя върху дървови папки) върху идеята за оформяне на такъв код, който сам по себе си ви позволява да подобрите и поставите на правилното място файловата система - програмиране ще се издигне до нова височина.

    Свързани публикации