Namespace PHP: Пример. Как да използваме пространства за имена в PHP?
Променливата определя стойност, но може да бъде препратка към друга променлива и да има нейната стойност. В процеса на изпълнение на алгоритъма променливата обикновено отнема много различни стойности. Константата съхранява само една стойност. Предметът е непредсказуем: е присъщо да има структура, съдържание и много функции.
съдържание
- Имена: обхват на описанието на данните и алгоритмите
- Места за имена: много сфери на описание
- Тестване и множествен дизайн
- Обекти, масиви и пространства за имена
- Синтаксис и приложение за пространство на имена
- Един прост пример за автоматични класове (обекти)
- Пример за набор от namespaces
- Зарежда се набор от класове от различни пространства за имена
- Файлова система и локализиране на пространства
- Проблемът на абстрактността и универсалността
Името пространство е колекция от променливи, константи, обекти, функции и други конструкции, създадени от разработчика, които могат да бъдат отправени чрез името на това пространство на имена.
Имена: обхват на описанието на данните и алгоритмите
Имената на елементите (променливи, константи, обекти, функции и други конструктори на разработчици) никога не се пресичат. Всяко съвпадение на PHP имена се интерпретира като сериозна грешка и в случаите, когато не може уникално да идентифицира проблема, разработчикът получава код, който не работи по предназначение, или бяло поле в браузъра.
Всички имена на всички данни трябва да бъдат уникални, тъй като пространството е глобално. Имената на обектите и функциите също не трябва да се повтарят, но обхватът на глобалната видимост се прекъсва в телата на методите на обектите и функциите. Там функционира свое собствено локално пространство на имена и нищо не пречи да се обади нещо по същия начин, както е указано отвън.
Горният пример е класически, ако не обръщате внимание на пространството за имена на ключови думи: всичко, както винаги. Има и второ допълнение. Префиксът NameSpaceTwo преди наименованията на функциите определя кое от тях е въведено.
Ако глобалната ключова дума се премахне от първата функция и операцията $ iExt = 1 се премести в следващия ред, нито първата функция, нито втората функция ще знаят стойността на променливата 100.
Места за имена: много сфери на описание
В показания пример има общ файл, който използва две вложки. Всяка вложка има същата функция scCheckName (). Коя да избере, програмистът решава чрез името на пространството, което е подходящо в точното време на точното място на кода.
Фактът, че едно и също име присъства в общия код (след сливането на вложките), не води до грешка поради простата причина, че всеки вмъкнат файл е маркиран със свое уникално име.
В първия файл всичко, което ще бъде описано в него, е свързано с името NameSpaceOne. Във втория файл всички описания са свързани с името NameSpaceTwo.
Всяко дублиране на имена и в двата файла е позволено, но във всяко от тях всяко име на елемента (променлива, константа, обект, функция) трябва да бъде уникално.
В този пример, промяната на името на пространството на имената в повикването за функцията scCheckName () запази променливата $ iExt на второто пространство от имена от промяната. Ето защо думата "променена" е специално подчертана в примера - промяната всъщност не се е осъществила. Стойността на променливата остава същата.
Тестване и множествен дизайн
Тези прости примери показват: лесно можете да опростите разработването на сложни проекти, да подобрите ефективността, производителността и да ускорите работата. Недвусмислено се появиха първите идеи в приложението за пространство за имена:
- сигурно тестване на скриптове - чрез замяна на "работните" пространства с аналози на тестовете;
- безопасно проектиране от големи екипи от разработчици - като им предоставя "отделни" описателни пространства за функциите.
Всъщност, пространството на имената е много по-важно. PHP езикът, пространството на имената и всеки елемент от описанието (променлива, константа, обект ...) са предоставили на разработчика възможност самостоятелно да манипулира синтаксиса и семантиката за дълго време.
Изграждането на езика и общото правило на съвременното програмиране: "разбрано" - изпълнено - има противоречие - "белият екран" на професионалния разработчик "не работи".
Много програмисти дори не знаят къде да търсят съобщение за грешка в PHP, когато няма нищо в браузъра (чиста бяла кутия). На определен етап от развитието си, програмистът мисли в синтаксиса и семантиката на PHP, "работи" автоматично и резултатът: собствен синтаксис и собствена семантика в рамките на разрешеното.
Бял екран е едновременно недвусмислена реакция на професионалния програмист и грешката се елиминира. Защо губим времето за отстраняване на грешки и грешки?
Обекти, масиви и пространства за имена
Може да се каже, че променливите, константите и функциите са миналия век, но те се използват в разработването на обекти. Добър код е, когато алгоритъмът се представя от взаимодействащи обекти, а не от поредица от валидни конструкции.
Ако използвате масиви от обекти, манипулирайте идеята за стека и последния (първи) елемент на масива, можете да получите динамиката: самите обекти "решават" как функционалността на сайта трябва да функционира, в зависимост от ситуацията.
В PHP пространството на имена е специален вид променлива, представлявана от собственото му уникално име, често сложно. Името на пространството на имена се използва в кода. Ако това е низ, можете да замените едно пространство с друго по време на изпълнението на скрипта.
Ако имената на имената на PHP се използват като променливи стойности, тогава това е още по-семантично зареден синтаксис, дори по-силен от масивите от обекти.
Предметът е структура и съдържание, които се характеризират с единство. Името пространство е набор от обекти, елементи и връзки между тях.
Не можете да провеждате експерименти с работеща система, но благодарение на пространството с имена PHP предоставя възможността да моделира истинска работна система в друго пространство за цели:
- по-нататъшно развитие;
- тестване;
- поддръжка и др.
Ако сте абстрактни от синтаксиса, предлаган от разработчиците на PHP и съществуващите пространства на имената като глобални комплексни обектни системи, тогава хоризонтите на възможностите се разширяват многократно.
Синтаксис и приложение за пространство на имена
Думата namespace PHP отнема само първия ред от кода за всеки файл. Всички описания трябва да отиват само за него. Синтаксисът включва само името, обозначено в обичайния смисъл на името.
Важно е да използвате правилните думи, които отразяват значението. По-добре е, когато името е дълго, но има нещо в него, което дава ясно разбиране за това кое пространство е включено, какво прави, какво описва, какво е необходимо или за какво се създава.
Местата могат да бъдат вложени едно с друго безкрайно, но това не бива да се злоупотребява. Името трябва да е разбираемо, гнездяването е оправдано и последователността на имената на пространствата трябва да има логика.
При използването и приложенията с имена, PHP позволява сложно кодиране, но когато има такава възможност, е по-добре да се направи с една проста опция.
Общото правило: пространството с имена е описание и това е един файл, използването му внася пространство в скрипт за използване и приписва псевдоним (кратка връзка) към него.
Един прост пример за автоматични класове (обекти)
В задачата има обект за манипулиране на линиите, стиловете на дизайна на елементите на страницата (CSS описания), обектът за дата, файловата система и базата данни. Смисълът на внедряването е да се създадат прости интерфейси за тези пет позиции, за да се използват необходимите възможности само чрез методите на тези обекти.
Не се допуска пряко използване на функциите и конструкциите на езика. В тази задача PHP използва класовете autoloading. Името пространство се счита за колекция от обекти, разположени на определено място във файловата система. Обикновено всички обекти се поставят във файловата система по смисъл, по папка и в файлове с конкретно име.
Кодът вляво показва създаването на необходимите пет обекта, но къде точно са, не е посочено. Кодът вдясно показва текста на автолоядъра (главния скрипт), който при зареждането на класове (обекти) автоматично подава необходимия път към местоположението на обекта и разширението на файла .php.
Пример за набор от namespaces
Библиотеката PhpOffice / PhpWord е добър пример за използване на сложна йерархия с множество имена. Папката с елементи съдържа практически цялата гама от налични елементи при създаването на документа * .docx (MS Word), другите папки съдържат необходимите инструменти за работа с елементи, абзаци и таблици.
Всъщност библиотеката е поставена в папката на проекта поради факта, че функционалното пространство PhpOffice / PhpWord е необходимо да бъде допълнено със специфични инструменти и в крайна сметка да създадете своя собствена версия на подобен продукт.
Зарежда се набор от класове от различни пространства за имена
Използването на пространство за авторско пространство на PHP, когато трябва да заредите групи от класове и йерархията на разработената система от обекти е доста сложна и трудна за представяне, но води до необходимостта от създаване на твърди структури.
Ориентацията на разработчика (използването на продукта за продължаване на работата) е възможно само в контекста на семантиката (разбиране на проекта), която се представя от правилните комбинации от думи, отразяващи реалното значение и взаимовръзките на обектите.
Необходимостта от използване на библиотеката в отделен проект води до решаването на проблема за това как да се комбинират пространствата за имена на разработчика и авторите на PhpOffice / PhpWord. Най-добрият начин е да поставите този продукт (неговите пространства и обекти) в собственото пространство на проекта.
Важно е да се отбележи, че без да се променят пространствата за имена на този продукт на нивото на неговите абстрактни елементи и класове на натоварване, няма да е възможно да се управлява. Това показва, че в пространството на имена в PHP използването на вътрешни пространства на имена не може да се извършва абстрактно и универсално.
Файлова система и локализиране на пространства
По същество, namespaces са "очертанията" на пътя във файловата система до желания обект. Използването на имена на файлове като име на обекти е естествено и познато. Използването на имена на папки като namespaces е обективно.
"Дървесната" организация на информацията е доста тромава при прилагането и усложнява развитието, но е естествено представяне на обектните системи.
Проблемът е фактът, че фазата на разработка е представена от определен кодов редактор, който съчетава както визуалното представяне на папките, така и съдържанието на конкретна папка, но все още няма такъв редактор, който да осигурява трафик през обекти и папки.
Проблемът на абстрактността и универсалността
Приет от съзнанието на разработчика и обективно в действителност:
- Обектно ориентираното програмиране (ООП) дава абстракция и способност да манипулира информацията според нейната реална семантика;
- Местните пространства отразяват позицията на скриптовете, обектите и отчасти значението на проекта в файловата система
В действителност, съчетаващ черпене на ООП в имената на обекти (файлове), и го постави на файловата система (папка) с подходяща името на образуване namepace (път + име), можете да контролирате образуването на пространството от имена в процеса на изпълнение на скрипта.
Програмиране вече е придобила силен импулс на развитие, но ако процесът на прехвърляне и зареждане на фазата на развитие с текстов редактор (което създава скриптове и се поставя дървото папка) на идеята за формиране на такъв код, което от своя страна позволява да се подобри и да се постави на мястото на файловата система - програмиране ще се издигне до нова височина.
- JSON формат: описание, пример
- Видове променливи в Pascal: описание, свойства, примери
- Основни типове и пример на циклични алгоритми
- "Паскал" е ... Език "Паскал" за начинаещи: описание
- PHP е глобална променлива във функция. Направете глобална променлива в PHP
- Програмиране: Java. Видове данни
- JS foreach обект като вариант дизайн
- BigInteger Java: работи с големи числа
- jаvascript Array за съхраняване на неограничен брой променливи
- Математика от jаvascript математика
- Променливата в програмирането напълно се характеризира с какво?
- Уравнението на регресията
- jаvascript Array за съхраняване на неограничен брой променливи
- Математика от jаvascript математика
- Методът на най-малките квадрати в Excel. Регресионен анализ
- Деклариране на SQL: описание. Transact-SQL
- Функция за управление на времето jаvascript setInterval ()
- Python: типове данни, условия, изисквания и примери
- Функции в Python: def. Python 3 за начинаещи
- Обектно-ориентирано програмиране в Python: класове, описание и функции
- Какви са типовете данни в Pascal?