PHP konstrukce: vytváření instancí tříd
Myšlenka objektově orientovaného programování je mnohem širší než schopnosti PHP kvůli jeho specifikům, ale i v existující implementaci dává programátorovi neomezené možnosti. Konstrukce PHP je speciální metodou třídy (objektu), která se nazývá pokaždé, když je vytvořena instance třídy.
Obsah
Omezením je, že PHP pracuje v době vytváření stránky. V okamžiku, kdy je stránka aktualizována nebo je načteno jiná stránka stejného webu, vznikne od nuly potřebný systém objektů.
Vytvoření instance třídy
Popis třídy Nemusíte mít konstruktéra. Pokud potřebujete připravit počáteční hodnoty proměnných, zachytit okamžik vytvoření instance třídy (objekt) provádět určité akce na jiné objekty, nelze použít syntaxi konstruktu PHP třídy a psát příslušný kód mimo metod třídy.
Podle logiky objektově orientovaného programovacího stylu musí každá třída mít konstruktora, navíc je nutné začít třídní strom z nejvíce abstraktního (absolutně prázdného) předka. Je to památka minulosti, ne rozumná praxe.
Když rodokmen začne se smysluplnou třídou, která má vlastní data a vlastnosti spojené s externími daty (objekty), nemohou být vypuštěny funkční rutiny.
V tomto příkladu, když vytvoříte (PHP construct) instanci třídy data, je tato funkce (návrhář) volána. Má specifické jméno __construct a zavolá automatu pouze jednou, když je vytvořena instance třídy.
Tato třída poskytuje statickou proměnnou $ iUniqueNo, která v každé nové instanci této třídy bude mít jedinečnou hodnotu. Příklady tříd nemají nic společného, kromě popisu v rámci syntaxe PHP a zamýšlené interakce jejich vývojářů.
Dědičnost inicializační logiky
Každý objekt musí realizovat svůj účel, mít to, co potřebuje, a dělat to, co má. Z takového rozumného hlediska může inicializace na každé úrovni rodokmenu zahrnovat inicializaci v každém předci nazvaném z úrovně potomka.
V tomto příkladu klíčové slovo parent :: umožňuje volat konstruktora rodiče z úrovně dítěte. Sémantika je jednoduchá. Nejprve musí předchůdce provést jeho inicializaci, pak aktuální instanci. První se řídí jeho logikou, druhou - svou vlastní.
Když se každý objekt zabývá vlastní činností, celkový proces vypadá správně a srozumitelně. Toto pravidlo by však nemělo být považováno za normu pro všechny systémy objektů.
Rodokmen systémové objekty „potraviny“ v prvním přiblížení může mít něco společného, ale produkty jsou mléko, meloun, těstoviny a cereálie, i když patří do tohoto systému, ale vypadají a jsou popsány úplně jinak.
Vývojář musí sestavit každý systém objektů z oblasti použití a nikoliv z toho, jak byl někdy navržen. Každá úloha je jedinečná, požadavek použití v nadřazené konstrukci PHP není absolutní.
Generální a soukromí konstruktéři
Ve výchozím nastavení je konstruktor generický a je k dispozici všem potomkům. Není nutné specifikovat konstrukce veřejné funkce, PHP ve výchozím nastavení zpracovává vše, co je popsáno jako obecné.
Kolik má smysl používat klíčové slovo soukromé při popisu konstruktorů - specifičnost úkolu, rys vývojového procesu nebo preference programátora?
Z konceptuálního hlediska může rodokmen předmětů dovolit jakékoli zákazy předků ve vztahu k potomkům, ale kolik je přiměřená logika v každém případě obtížná v obecném kontextu.
Životnost objektu
Koncepce objektově orientované programování další funkce třídy PHP konstrukce z jednoduchého důvodu, že existují pouze v okamžiku vytvoření stránky, jeho opětovné vytvoření nebo vytvoření jiné stránky webu.
Účast AJAX přes prohlížeč jаvascript a správný kód na serveru pomůže prodloužit životnost objektů, ale v jakékoliv verzi bude omezený styl.
PHP poskytuje možnost spustit skript na serveru, pokud je klient „odpojeno“ a „přijmout“ klienta zpět do skriptu, než je spuštěn, ale to není možné, je-li objektově orientovaný program realizován v jazyce C ++.
V druhém případě můžete vytvořit kompletní systém objektů, který bude existovat "navždy", zatímco program běží a běží. Nicméně je to jediná věc, kterou se může pochlubit stacionární programovací jazyk jako C ++, C #, PascalDelphi. V dynamickém světě internetu je vše postaveno jinak, žije rychleji a dosahuje více.
Od serializace až po vlastní zachování
Můžete najít historické ospravedlnění pro termín "serializace" a vzhled pojetí "magických metod" v každodenním životě. Ale vše je mnohem jednodušší. Přesně to samé jako svoboda C ++ se liší od rigidity C #, serializace se liší od banálních konceptů:
- napište objekt na řetězec;
- číst objekt z řetězce.
Obklopení kouzla mýty magickými metodami je krásné, zvučné, ale ne tak praktické. Svět informací je zajímavý především proto, že vše, co je viditelné, slyšitelné a hmatatelné, může být popsáno jednoduchým a konzistentním textem.
Informace byly vždy, jsou a budou řetězem symbolů. Nezáleží na tom, jakou přírodu. Ve formálních konstrukcích programovacích jazyků je povaha znaků jedna - kódovací tabulka.
Myšlenka přeměnit objekt na řetězec, abyste jej mohli obnovit z tohoto řádku, aniž byste museli ztrácet podstatu, pokud je to nutné, je velmi praktický nápad.
Od sebeupozornění až po vlastní rozvoj
Sémantika konstruktoru konstruktoru PHP v jeho syntaxi je omezená, ale pokud se projektant vyvíjí z rozvinuté pozice:
- tam je začátek - je vytvořena zcela nová kopie -
- existuje aktuální stav - vytvoří se stávající instance.
Omezení PHP, protože systém objektů na něm existuje jen v okamžiku vytváření stránky, budou odebrány sami.
Vytvoření systému objektů při vytváření stránky webu jej můžete uložit. Pro zjednodušení se tento proces nemusí být nutně nazývá serializace, můžeme omezit zachování statu quo (databázové soubory), a když je třeba, aby znovu stejnou stránku nebo vytvořit jiný na stejném místě, jednoduše obnovit současný stav, který již byl vytvořen.
V tomto kontextu je systém objektů vytvořen pouze jednou a v procesu na místě se prostě vyvíjí. Pomocí tohoto schématu můžete navrhnout systém objektů jako něco, co se přizpůsobuje měnícím se podmínkám existence.
Samostatně uložený systém objektů "pamatuje" akce návštěvníků a stav stránky a pokaždé, když je PHP spuštěn, není vytvořen od začátku, ale je obnoven v předchozím stavu.
- Objektově orientované programování
- Co je jаvascript? Historie vzhledu a hlavních rysů
- Nebezpečné objekty (potenciál) mohou být blízko
- Horní vrstva privilegované třídy. Kdo to jsou?
- Zapouzdření je co? Zapouzdření v programování
- OOP je co? Základní principy objektově orientovaného programování
- Abstraktní třída a metoda: popis, vlastnosti a rysy. Jaký je rozdíl mezi abstraktní třídou a…
- jаvascript: typeof - potřeba nebo nové funkce
- jаvascript: příklady aplikací
- Java: InputStream. Vstupní toky
- Generika jazyka Java: Popis a metody
- Java: práce se soubory - psaní, čtení, mazání
- Prvky modelu objektu Java: abstraktní třída, rozhraní
- Skok / pop
- Použití indexOf (jаvascript) při práci s maticemi a řetězci
- Účinné operace na úrovni linky pomocí metody split jаvascript
- Expresivní jаvascript: popis funkcí
- jаvascript Object: vytváření objektů a práce
- Rekurzivní algoritmus: popis, analýza, funkce a příklady
- Objektově orientované programování v Pythonu: třídy, popis a funkce
- Jak psát do souboru v jazyce Java