daGrevis Posted May 24, 2010 Report Share Posted May 24, 2010 Sveiki, Es patiešām smagi cenšos pāriet no parastā PHP koda (pa... (aizmirsu kā saucās)) uz objektu orientēto (OOP)! =) Tagad nāktos visu kodu pārrakstīt uz OOP. Un tātad, lūk, jautājums. Ko nozīmē visu kodu? Man katram sīkumam jābūt kā objektam? Kā man tos objektus dalīt? Piemērs. Pavisam viegls skriptiņs. $start_time = microTime(true); $end_time = microTime(true); $result = round($end_time - $start_time, 3); Vai ko tādu ir jēga par objektu pārtaisīt?? class timer { public $start_time; public $end_time; public $result; function start() { $this->start_time = microTime(true); } function end() { $this->end_time = microTime(true); } function result() { return $this->result = round($this->end_time - $this->start_time, 3); } } $timer = new timer; Un man ir, piemēram, lietotāju sistēma. Var reģistrēties, ielogoties. Kā man viņu par objektu taisīt? I'n confused. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted May 24, 2010 Report Share Posted May 24, 2010 Dari taa kaa pasham liekaas eerti. Nav obligaati visam jaabuut OOP vai preteeji proceduraalam. Var arii mikseet lietas. Arii man, shad un tad, patiik izmantot shaadas, taadas funkcijas, lai gan paarsvaraa mans kods ir objektains :) Saac leenaam maaciities par OOP un tad jau automaatiski viss vajadziigais liksies objektos, kaut kaadi noderiigi helperi funkcijaas. Kaa arii ja tu veidosi plikas klases, bez jebkaadaam inheritaacijaam un abstrakcijaam, tad nedomaaju, ka vispaar ir veerts tam kjerties klaat, bet lai tajaa kaartiigi iebrauktu vajag krietni palasiities par OOP pamatiem (ne tikai PHP OOP). OOP labi saistaas kopaa ar MVC. Ir modelji (piemeeram Lietotaajs, Raksts, Komentaars), katrs no tiem ir klase. Katrs no tiem extend'o klasi Modelis, kas satur metodes un propertijus, kuras ir izmantojamas globaali. Tas pats ir ar kontrolieriem (LietotajaKontrolieris, RakstaKontrolieris, KomentaaraKontrolieris). Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 24, 2010 Author Report Share Posted May 24, 2010 MVC. Quote Link to comment Share on other sites More sharing options...
sandis_m Posted May 24, 2010 Report Share Posted May 24, 2010 Psc dagrevis, tāds progress jūtams =) ! Es gan tik "smagām" lietām neķeršos klāt. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 24, 2010 Author Report Share Posted May 24, 2010 Tas, kad es ķeros klāt nenozīmē, ka es saprotu to. =D Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 25, 2010 Report Share Posted May 25, 2010 Piemērs. Pavisam viegls skriptiņs. $start_time = microTime(true); $end_time = microTime(true); $result = round($end_time - $start_time, 3); Vai ko tādu ir jēga par objektu pārtaisīt?? Nee nav gan. Parasti dara taa, ja paredzets ka dotais kods tiks pielietots vairakas vietaas, piedevam iespejams tiks modificets, tad reali izpauzas OOP prieksrociibas.. Jo nav jegas veidot klasi, ja tajaa ir tikai 1-2 funkcijas. OOP prieksrociiba ir taa ka, visas vinja ietilpstosaas iipasiibas, var viegli modificet, vienkarshi katru reizi izveidojot jaunu Objektu. -- Piedevam tavaa piemeraa buutu liederiigi izmantot Konstruktoru, kas automataa palaistu taimeri, pie objekta izveidosanas ( pirmo funkciju nosaucot nevis start() , bet gan timer() ... { reals piemers kur klases konstruktors buutu liederiigi izmantojams } -- Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 25, 2010 Author Report Share Posted May 25, 2010 Baigi sarežģīti nemaz nerunājot par pašu MVC... =/ Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted May 25, 2010 Report Share Posted May 25, 2010 IMO lai apgūtu OOP vajag kārtīgi apgūt procedurālo pieeju, lai vispār saprastu kādi tieši ir OOP ieguvumi. Rakstīt objekt-orientēti tikai tādēļ, lai būtu OOP nav jēgas un kods sanāks ne tāds ne šāds. Un PHP vispār OOP implementācija nav tā labākā IMO :/ MVC var dabūt arī ne-OOP'iski. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.