Ideja objektno-orijentiranog programiranja je mnogo šira od mogućnosti PHP-a zbog svoje specifičnosti, ali čak iu svojoj trenutnoj implementaciji daje programeru neograničene mogućnosti. Konstrukt konstrukcije PHP je posebna metoda klase (objekta) koja se poziva svaki put kada se kreira instanca klase.
Ograničenje je da PHP radi u vrijeme generiranja stranice. U trenutku kada se stranica ažurira ili preuzme na drugu stranicu istog mjesta, traženi sustav objekata ponovno se formira od nule.
Kreirajte instancu klase
Opis klase nije potreban za konstruktora. Ako želite pripremiti početne vrijednosti varijabli, uhvatite trenutak kada se instanca klase (objekta) kreira, za izvođenje određenih radnji nad drugim objektima, tada ne možete koristiti sintaksu konstrukcije PHP klase i upisati odgovarajući kod izvan metoda klase. Prema logici stila objektno-orijentiranog programiranja, svaka klasa mora imati konstruktora, štoviše, potrebno je pokrenuti stablo klase od najviše apstraktnog (potpuno praznog) pretka. Ovo je ostatak prošlosti, a ne razumna praksa. Kada rodoslovlje počinje značajnom klasom koja ima svoje podatke i svojstva povezana s vanjskim podacima (objektima), bez funkcije konstrukcije PHP ne može.
U ovom primjeru, prilikom kreiranja (PHP konstrukta) instance klase datuma, ova funkcija (konstruktor) će biti pozvana. Ima specifično ime __construct i automatski ga naziva samo jednom kada se kreira instanca klase.
U ovoj klasidaje statičku varijablu $ iUniqueNo, koja će u svakoj novoj instanci ove klase imati jedinstvenu vrijednost. Kopije klasa nemaju ništa zajedničko sa samim sobom osim opisa u sintaksi PHP-a i koje daje developer interakcije njihovih metoda.
Nasljeđivanje logike inicijalizacije
Svaki objekt mora ostvariti svoju svrhu, imati ono što pripada i činiti što treba. Iz takve razumne točke gledišta, inicijalizacija na svakoj razini pedigrea može uključivati inicijalizaciju u svakom pretku, koju je uzrokovao potomak.
U ovom primjeru, roditelj :: ključ vam omogućuje da pozovete konstruktora pretka s razine nasljednika. Semantika je jednostavna. Prvo morate inicijalizirati svog pretka, a zatim trenutnu instancu. Prvi slijedi njegovu logiku, a druga svoju. Kada svaki predmet koji se bavi njegovim poslovanjem, izgleda cjelovito i razumljivo. No, ovo pravilo ne bi trebalo smatrati normom za sve objekte sustava.
Genealogija sustava objekata "hrana" u prvoj aproksimaciji može imati nešto zajedničko, ali proizvodi od mlijeka, lubenica, makaroni i griz, iako se odnose na takav sustav, ali izgledaju i opisuju se potpuno drugačije. Programer mora izgraditi svaki sustav objekata iz opsega, a ne iz onoga što je nekad bio predložen nekome. Svaki zadatak je jedinstven, zahtjev za njegovo korištenje u PHP roditeljskom konstruktu nije apsolutan.
Opći i privatni dizajneri
Prema zadanim postavkama, konstruktor je uobičajen i pristupačankoristiti svi potomci. Nije potrebno specificirati konstrukciju javne funkcije, PHP po defaultu tretira sve što je opisano kao opće.
Kako ima smisla koristiti osobnu ključnu riječ kada se opisuju dizajneri - specifičnost zadatka, značajka razvojnog procesa ili prednosti programera? S konceptualne točke gledišta, genealogija objekata može dopustiti bilo kakvu zabranu predaka prema potomcima, ali koliko je logična logika teško reći, u svakom slučaju, u općem kontekstu.
Životni vijek objekta
Koncept objektno orijentiranog programiranja je širi od značajki PHP konstrukcijske klase iz jednostavnog razloga što potonji postoji samo kada je stranica stvorena, ponovno stvorena ili kreirana druga stranica web-mjesta.
Sudjelovanje putem AJAX javascript preglednika i odgovarajućeg koda na poslužitelju pomoći će produžiti vijek trajanja objekata, ali u svakom slučaju bit će ograničen u stilu. PHP pruža mogućnost izvršavanja skripte na poslužitelju kada je klijent "odspojen" i "dopusti" klijenta natrag u skriptu koju je pokrenuo ranije, ali to uopće nije verzija kada je objektno orijentirani program implementiran u C ++. U potonjem slučaju možete izgraditi cjeloviti sustav objekata koji će trajati zauvijek "dok se program izvodi i izvodi. Međutim, to je jedina stvar koja se može pohvaliti stacionarnim programskim jezikom kao što su C ++, C #, Pascal i Delphi. sve je izgrađeno drugačije, živi brže i postiže više.
Od serijalizacije do samo-očuvanja
Možete pronaći povijesno opravdanje pojma"serijalizacije" i pojave pojma "magijskih metoda" u svakodnevnom životu. Ali sve je mnogo lakše. Upravo isto kao i sloboda C + + od tvrdoće C #, serijalizacija se razlikuje od elementarnih pojmova:
napisati objekt u nizu;
čita objekt iz linije. Promatrati riječi izgovorene magijskim i mitskim magijskim metodama - lijepo, glasno, ali malo praktično. Svijet informacija je zanimljiv prvenstveno činjenicom da se sve vidljivo, zvučno i opipljivo može opisati jednostavnim i dosljednim tekstom. Informacije su uvijek bile, jest i bit će niz znakova. Bez obzira na prirodu. U formalnim konstrukcijama programskih jezika priroda znakova je jedna - tablica kodiranja. Ideja je da se objekt pretvori u liniju tako da ga je moguće, ako je potrebno, vratiti iz crte bez gubitka suštine - vrlo praktične ideje.
Od samoodržanja do samorazvoja
Semantika konstruktora konstruktora PHP u svojoj sintaksi je ograničena, ali ako se konstruktor treba razviti iz pozicije u razvoju:
početak - stvara se potpuno nova instanca;
je trenutno stanje - stvorena je postojeća instanca. Ograničenje PHP-a s obzirom na to da sustav objekata na njemu postoji samo u vrijeme formiranja stranice, bit će uklonjeno samo po sebi.
Prilikom stvaranja sustava objekata pri izradi stranice, on se može spremiti. Radi jednostavnosti, ovaj proces ne mora nužno biti serijski, može se ograničiti na očuvanje trenutnog stanja stvari (baze podataka, datoteke), a kada je potrebno ponovno stvoriti istu stranicu ili stvoriti drugu na istom mjestu, jednostavno vratite to trenutno stanjestvari koje su već formirane. U tom kontekstu, sustav objekata se kreira samo jednom, au procesu se upravo razvija. Pod takvom shemom moguće je osmisliti sustav objekata kao nešto što se prilagođava promjenjivim uvjetima postojanja. Samoodržavajući sustav objekata "sprema" akcije posjetitelja i stanje stranica, a svaki put kada PHP počne, ne stvara se od nule, već se vraća u prethodno stanje.