nisfarm.ru

Namespace PHP: Příklad. Jak používat jmenné prostory v PHP?

Proměnná definuje hodnotu, ale může to být odkaz na jinou proměnnou a má její hodnotu. V procesu provádění algoritmu proměnná obvykle trvá hodně různých hodnot. Konstanta ukládá pouze jednu hodnotu. Objekt je nepředvídatelný: je neodmyslitelné mít strukturu, obsah a mnoho vlastností.

php jmenný prostor

Obor názvů je sada proměnných, konstant, objektů, funkcí a dalších konstrukcí vytvořených vývojářem, které lze odkazovat přes název tohoto oboru názvů.

Názvy: rozsah popisu dat a algoritmů

Názvy prvků (proměnné, konstanty, objekty, funkce a další vývojářské konstrukty) se nikdy neprotínají. Jakákoliv podobnost jmen PHP interpretuje jako vážnou chybu, a v případech, kdy nelze jednoznačně identifikují problém, vývojář obdrží kód nefunguje, jak bylo zamýšleno, nebo se bílý rámeček v prohlížeči.

Všechny názvy všech dat musí být jedinečné, protože prostor je globální. Názvy objektů a funkcí by také neměly být opakovány, ale rozsah globální viditelnosti je přerušován v tělech metod objektů a funkcí. Tam funguje jeho vlastní, místní jmenný prostor a nic nebrání tomu, aby něco volalo stejným způsobem, jak je naznačeno zvenčí.

Příklad proměnných, analogie prostoru názvů

Výše uvedený příklad je klasický, pokud nevěnujete pozornost názvovému prostoru klíčových slov: vše, jako vždy. K dispozici je i druhý. Předpona NameSpaceTwo před názvy funkcí určuje, od kterého vkládání je kód odebrán.

Je-li globální klíčové slovo odstraněno z první funkce a operace $ iExt = 1 je přesunuta do dalšího řádku, ani první funkce, ani druhá funkce nebudou znát hodnotu proměnné 100.

Jmenná místa: mnoho sfér popisu

V uvedeném příkladu existuje společný soubor, který používá dvě vložky. Každá vložka má stejnou funkci scCheckName (). Který z nich zvolí, programátor rozhodne pomocí názvu prostoru, který je relevantní ve správný čas na správném místě kódu.

Skutečnost, že stejný název je přítomen ve společném kódu (po sloučení vložky) nevede k chybě z jednoduchého důvodu, že každý vložený soubor je označen jeho vlastním jedinečným jménem.

V prvním souboru je vše, co bude v něm popsáno, spojeno s názvem NameSpaceOne. Ve druhém souboru jsou všechny popisy vázány na název NameSpaceTwo.

Jakákoliv duplikace názvů v obou souborech je povolena, ale v každém z nich musí být jakýkoli název prvku (proměnná, konstanta, objekt, funkce) jedinečný.

Nahrazení oboru názvů
Nahrazení oboru názvů

V tomto příkladu změna názvu oboru názvů v volání funkce scCheckName () uložila proměnnou $ iExt druhého oboru názvů ze změny. Proto je v příkladu speciálně zvýrazněno slovo "změna" - změna se ve skutečnosti neuskutečnila. Hodnota proměnné zůstává stejná.

Testování a vícenásobné provedení




Tyto jednoduché příklady ukazují, že můžete snadno zjednodušit vývoj složitých projektů, zvýšit efektivitu, produktivitu a urychlit práci. Jednoznačně se objevily první myšlenky aplikace jmenného prostoru:

  • bezpečné testování skriptů - nahrazením "pracovních" prostorů testovacími analogy;
  • bezpečné navrhování velkými týmy vývojářů - tím, že jim poskytne "jednotlivé" prostory pro popis funkcí.

Ve skutečnosti je jmenný prostor mnohem důležitější. Jazyk PHP, názvů a popis jednotlivých prvků (variabilní, konstantní, objektu ...) po dlouhou dobu poskytnout vývojářům možnost manipulovat syntaxe a sémantiky.

klíčové slovo

Výstavba jazyka a obecné pravidlo moderního programování: "chápáno" - naplněno - je zde rozpor - "bílá obrazovka" profesionálního vývojáře "nefunguje".

Mnoho programátorů si ani neuvědomuje, kam hledat chybovou zprávu PHP, když v prohlížeči neexistuje nic (čistý bílý rámeček). V určité fázi svého vývoje programátor myslí v syntaxi a sémantiku PHP, "pracuje" automaticky a výsledek: vlastní syntaxe a vlastní sémantika v rámci povoleného.

Bílá obrazovka je zároveň jednoznačnou reakcí profesionálního programátora a chyba je vyloučena. Proč ztrácet čas ladění a zobrazení chyb?

Objekty, pole a jmenné prostory

Můžete říci, že proměnné, konstanty a funkce jsou poslední století, ale používají se při vývoji objektů. Dobrý kód je, když je algoritmus reprezentován interakčními objekty, nikoliv řadou platných konstrukcí.

php namespace autoload

Máte-li použít pole objektů, manipulovat zásobníku myšlenku a poslední (první) prvku matice, můžete získat dynamiku: předměty samy o sobě „rozhodnout“, jak pracovat funkčnost stránek v závislosti na panující situaci.

V PHP je jmenný prostor zvláštní druh proměnné, reprezentovaný svým vlastním jedinečným názvem, často složitým. Název oboru názvů se používá v kódu. Pokud je to řetězec, můžete během spouštění skriptu nahradit jeden prostor jiným.

Jsou-li názvy prostorových názvů PHP používány jako hodnoty proměnné, je to ještě sémantičtější syntaxe, dokonce silnější než pole objektů.

Objekt je struktura a obsah, který je charakterizován jednotou. Obor názvů je sada objektů, prvků a propojení mezi nimi.

prostor je globální

Nelze provádět experimenty na běžícím systému, ale díky oboru názvů PHP poskytuje možnost modelovat skutečný pracovní systém v jiném prostoru pro účely:

  • další rozvoj;
  • testování;
  • údržba atd.

Ponecháme-li stranou syntaxi navržené vývojáři PHP, a na globální obor názvů jako komplexní systém objektů, je možné rozšířit obzory mnohokrát.

Aplikace syntaxe a jmenného prostoru

Pole namespace PHP bere pouze první řádek kódu pro každý soubor. Všechny popisy by měly jít jen pro něj. Syntaxe obsahuje pouze název označovaný v obvyklém smyslu jména.

Je důležité používat správná slova, která odrážejí význam. Lepší, když je název dlouhý, ale je tu něco, co dává jasnou představu o tom, jaké místo v otázce, že to dělá, že popisuje, co má, nebo to, co vytvořil.

Prostory mohou být navzájem vnořené, ale toto by nemělo být zneužíváno. Jméno by mělo být srozumitelné, hnízdění je oprávněné a sekvence názvů prostorů by měla mít logiku.

V aplikacích a aplikacích jmenného prostoru umožňuje PHP komplexní kódování, ale kdykoli existuje taková možnost, je to lépe udělat s jednoduchou volbou.

php autoloading jmenný prostor

Obecné pravidlo: jmenný prostor je popis a jedná se o jeden soubor, použití je importuje místo do skriptu použití a přiřazuje k němu přezdívku (krátký odkaz).

Jednoduchý příklad automatických tříd (objektů)

V úloze existuje objekt pro manipulaci s řádky, styly návrhu prvků stránky (popisy CSS), objekt datumu, souborový systém a databáze. Smyslem implementace je vytvořit pro tyto pět pozic jednoduché rozhraní, aby bylo možné využít potřebných schopností pouze metodami těchto objektů.

Žádné přímé použití funkcí a konstrukcí jazyka je povoleno. V tomto úkolu PHP používá třídu autoloading. Namespace je považován za sbírku objektů umístěných na určitém místě v souborovém systému. Obvykle jsou všechny objekty umístěny do souborového systému smyslem, složkou a soubory se specifickým názvem.

Autoloading třídy (objekty)

Kód vlevo označuje vytvoření potřebných pěti objektů, ale kde přesně jsou, není specifikováno. Kód vpravo ukazuje text autoloaderu (hlavní skript), který při načítání tříd (objektů) automaticky předloží požadovanou cestu k umístění objektu a příponu souboru .php.

Příklad souboru jmenných prostorů

Knihovna PhpOffice / PhpWord je dobrým příkladem použití složité hierarchie několika jmenných prostorů. Složka prvků obsahuje prakticky celý rozsah dostupných prvků při vytváření dokumentu * .docx (MS Word), ostatní složky obsahují potřebné nástroje pro práci s prvky, odstavci a tabulkami.

php namespace use

Ve skutečnosti, knihovna je umístěna ve složce projektu z toho důvodu, že prostor funkčnost PhpOffice / PhpWord potřebných pro dokončení určité nástroje a nakonec vytvořit vlastní verzi stejného produktu.

Načítání sady tříd různých jmenných prostorů

Používání PHP namespace autoload, kdy je nutné zavést sadu tříd a hierarchii objektů vyvinutý systém je poměrně složitý a je obtížné si představit, to vede k nutnosti zavést pevné struktury.

Orientace developera (používání produktu k pokračování práce) je možná pouze v kontextu sémantiky (pochopení projektu), což je reprezentováno správnými kombinacemi slov odrážejících skutečný význam a vzájemné vztahy objektů.

hlavní skript

Potřeba používat knihovnu v jednotlivých projektech vede k řešení problému, jak kombinovat jmenné prostory vývojáře a autorů PhpOffice / PhpWord. Nejlepším způsobem je umístění tohoto produktu (jeho prostorů a objektů) do vlastního prostoru projektu.

Je důležité poznamenat, že bez úpravy jmenných prostorů tohoto produktu na úrovni jeho abstraktních prvků a tříd zatěžování nebude možné spravovat. To naznačuje, že v oboru názvů PHP nelze použití interních jmenných prostorů provádět abstraktně a všeobecně.

Souborový systém a lokalizace prostorů

V podstatě jsou jmenné prostory "obrysy" cesty v souborovém systému k požadovanému objektu. Použití názvů souborů jako názvy objektů je přirozené a známé. Používání názvů složek jako jmenných prostorů je objektivní.

"Dřevěná" organizace informací je poměrně těžkopádná při aplikaci a komplikuje vývoj, ale je to přirozená reprezentace objektových systémů.

Problém je v tom, že fáze vývoje je reprezentována konkrétním kódu editor, který kombinuje obě viditelné zastoupení složky a obsah určité složky, ale není tam žádná taková editor, který by zajistil, přes provoz na projektech a složek.

Problém abstraktnosti a univerzálnosti

Přijatá vědomím developera a objektivně ve skutečnosti:

  • Objektově orientované programování (OOP) poskytuje abstrakci a schopnost manipulovat s informacemi podle své skutečné sémantiky;
  • Názvy prostor odrážejí polohu skriptů, objekty a částečně i význam projektu v souborovém systému

Ve skutečnosti, kombinující abstrakci OOP v názvech objektů (souborů), a dát to na souborovém systému (složky) s odpovídající název formace namepace (cesta + název), můžete kontrolovat tvorbu názvů v procesu provádění skriptu.

Programování již získala silnou dynamiku vývoje, ale v případě, že převod proces a načíst fázi vývoje pomocí textového editoru (který vytváří skripty a umístil strom složek) k myšlence vytvoření takové kód, který sám umožňuje zlepšit a musí být umístěny na správném místě v souborovém systému - programování se zvýší na novou výšku.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru