PHP konstrukce: vytváření instancí tříd

Myšlenka objektově orientovaného programování je mnohem širší než schopnosti PHP kvůli své specifičnosti, ale dokonce i ve své současné implementaci dává programátorovi neomezené možnosti. Konstrukt konstrukce PHP je speciální metodou třídy (objektu), která je vyvolána pokaždé, když je vytvořena instance třídy.

Omezení je, že PHP běží v době generování stránky. V okamžiku, kdy je stránka aktualizována nebo stažena na jinou stránku stejného webu, požadovaný systém objektů se znovu vytvoří znova.


Vytvoření instance třídy

Popis konstrukce nevyžaduje konstruktor. Pokud chcete připravit počáteční hodnoty proměnných, zachytit okamžik, kdy je vytvořena instance třídy (objektu), provádět určité akce nad jinými objekty, nemůžete použít syntaxi konstrukce třídy PHP a zapsat odpovídající kód mimo metody třídy. Podle logiky objektově orientovaného programovacího stylu musí každá třída mít konstruktora, navíc je třeba začít strom tříd od nejvíce abstraktního (zcela prázdného) předka. Je to památka minulosti, ne rozumná praxe. Když genealogie začíná významnou třídou, která má vlastní data a vlastnosti spojené s externími daty (objekty), bez funkce konstrukce PHP nemůže dělat.
V tomto příkladu při vytváření instance (PHP construct) třídy dat bude tato funkce (konstruktor) volána. Má specifické jméno __construct a zavolá automatu pouze jednou, když je vytvořena instance třídy.
V této tříděposkytuje statickou proměnnou $ iUniqueNo, která v každé nové instanci této třídy bude mít jedinečnou hodnotu. Kopie tříd nemají společné s sebou kromě popisu v rámci syntaxe PHP a poskytované vývojářem interakce jejich metod.


Dědičnost inicializační logiky

Každý objekt musí realizovat svůj účel, mít to, co patří, 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 způsobeném potomkem.
V tomto příkladu umožňuje klávesa parent :: volat konstruktora předka z úrovně potomka. Sémantika je jednoduchá. Nejprve musíte inicializovat vášho předka, pak aktuální instanci. První se řídí jeho logikou, druhá je její vlastní. Při každém objektu, který se zabývá jeho podnikání, 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émové objekty.
Vývod systémové objekty „potraviny“ v prvním přiblížení může mít něco společného, ​​ale mléčné výrobky, meloun, těstoviny a cereálie, i když patří do tohoto systému, ale vzhled a popsal úplně jinak. Vývojář musí postavit každý systém objektů z rozsahu, spíše než z toho, co kdysi někdo navrhl. Každý úkol je jedinečný, požadavek na jeho použití v nadřazené konstrukci PHP není absolutní.

Generální a soukromí návrháři

Ve výchozím nastavení je konstruktor společný a přístupnýužívat všichni potomci. Není nutné specifikovat konstrukci veřejné funkce, PHP ve výchozím nastavení zachází s popisem všeho obecného.
Jak má smysl používat soukromé klíčové slovo při popisu návrhářů - specificita úkolu, rys vývojového procesu nebo výhody programátora? Z koncepčního hlediska rodokmen objekty mohou povolit jakýkoli zákaz předky proti potomků, ale tak chytrý, logika je těžké říci, v každém případě, v celkovém kontextu.

Životnost objektu

Pojem objektově orientovaného programování širší možnosti PHP konstruktu třídy z prostého důvodu, že tyto existují pouze v okamžiku tvorby stránky znovu vytvořit, nebo vytvořit jinou stránku.
Účast přes AJAX javascript kód prohlížeč a správné serveru pomůže prodloužit životnost objektů, ale v jakékoliv formě bude omezený styl. PHP umožňuje spouštět skripty na serveru, pokud je klient „odpojeno“ a „zabránit“ klienta zpět do skriptu, spusťte jej dříve, ale to není volba, když je objektově orientovaný program realizován v jazyce C ++. V takovém případě můžete vytvořit kompletní systém, objekty, které bude trvat věčně, „zatímco program a běží Nicméně, toto je jen to, co se může pyšnit jakoby pevné programovacího jazyka C ++, C #, Pascal & amp;.. Delphi v dynamickém světě Internetu všechno je postaveno jinak, žije rychleji a dosahuje víc.

Od serializace až po vlastní zachování

Zde najdete historické ospravedlnění pojmu"serializace" a vznik konceptu "magických metod" v každodenním životě. Ale vše je mnohem jednodušší. Přesně to samé jako svoboda C ++ od tvrdosti C #, serializace se liší od elementárních pojmů:
  • psát objekt v řadě;
  • četl objekt z řádku.
  • Pozorovat slova mluvená kouzelnými a mýtickými magickými metodami - krásně, hlasitě, ale málo praktická. Svět informací je zajímavý především tím, že vše, co je viditelné, slyšitelné a hmatatelné, může být popsáno v jednoduchém a konzistentním textu.
    Informace byly vždy, jsou a budou řetězem znaků. Nezáleží na jaké přírodě. Ve formálních konstrukcích programovacích jazyků je povaha znaků jedna - kódová tabulka. Cílem je přeměnit objekt na čáru, aby bylo možné v případě potřeby jej obnovit z linky bez ztráty podstaty - velmi praktický nápad.

    Z vlastního zachování až po sebevytvoření

    Sémantika konstruktoru konstrukce PHP v rámci jeho syntaxe je omezená, ale pokud má být konstruktor vyvíjen z rozvíjející se pozice
  • - vzniká zcela nová instance;
  • je aktuální stav - vytvoří se stávající instance.
  • Omezení PHP vzhledem k tomu, že systém objektů na něm existuje jen v době vytvoření stránky, bude odstraněn sám.
    Při vytváření systému objektů při vytváření stránky může být uložen. Pro jednoduchost se tento proces nemusí nutně nazývat serializací, může se omezit na zachování současného stavu věcí (databází, souborů) a když je nutné znovu vytvořit stejnou stránku nebo vytvořit jinou stránku na stejném webu, jednoduše obnovte aktuální stavvěci, které již byly vytvořeny. V tomto kontextu je systém objektů vytvořen pouze jednou a v procesu na místě se právě vyvíjí. V rámci tohoto systému je možné navrhnout systém objektů jako něco, co se přizpůsobuje měnícím se podmínkám existence. Samoopravný systém objektů "zachraňuje" akce návštěvníka a stav stránek a pokaždé, když PHP začíná, není vytvořen od začátku, ale je obnoven ve svém předchozím stavu.

    Související publikace