v3rb0 Posted July 15, 2008 Report Share Posted July 15, 2008 function public GetImageSize($Image) { !!! Link to comment Share on other sites More sharing options...
Prayer !! Posted July 15, 2008 Author Report Share Posted July 15, 2008 (edited) Tātad, kkas man izdevas.. Bija daudz neuzmanības/nezināšanas kļūdu, bet tās salaboju..:) Darbojas ar vienu bet, kas man shkiet ka nedarbojas tomer..Par to talak.. :) action.php http://paste.php.lv/7635?lang=php imageresize.php http://paste.php.lv/7636?lang=php constants.php http://paste.php.lv/7637?lang=php lieta tada, ka man shkiet ka nedarbojas imageresize.php faila kur ir if($var1 > $var2){...} neiet tas operators > , bet uzreiz aiziet uz else un to ari izpilda vienmer.. varbut es kludos, bet apskatieties pashi.. Godigi man vajadzetu kritiku par sho skriptu.. lai saprastu kā pareizāk veidot klases utt.. tai skaitā arī šajā skriptā :) Paldies ka palīdzat man mācīties.. :) Edited July 15, 2008 by Prayer !! Link to comment Share on other sites More sharing options...
v3rb0 Posted July 15, 2008 Report Share Posted July 15, 2008 (edited) tas ka neiet kāda f-ja ir jālabo tieši tāpat, kā to darītu, ja rakstītu bez oop. kritika oop mācīšanās kontekstā.. imageresize.php Nevajag failā, kurā glabā tikai klasi ņemt un taisīt viņas instanci. liec to darbību action.php. ja gribi singletonu, tad to dara mazliec citādi. Klases sauc sākot ar Lielo burtu, bet metožu nosaukumus ar mazo (kā to dara zend frameworkā, java, ruby, utt). Tāpat tas echo klases imageResize metodēs ir nesmuki, outputu no ta visa iekš action.php taisi. un vispār, imageResize vietā nosauc viņu par MyImage, pieliec konstruktoru, kuram var padot ceļu uz bildi, uztaisi savu __toString() metodi, lai galu galā vari rakstīt kaut ko šādu: $img = new MyImage("bilde.jpg"); list($w, $h) = $img->getSize(); $img->resizeTo(10,10); echo $img; // echo $img->__toString(); utt constants.php Konstantes liec nevis globālas ar define, bet gan klasē ar const - būs pa rightīgo oop :) Edited July 15, 2008 by v3rb0 Link to comment Share on other sites More sharing options...
Prayer !! Posted July 15, 2008 Author Report Share Posted July 15, 2008 Es atzišos, ka nezinu vai sapratu tavus iteikumus pareizi, bet here goes nothing ;) Tatad action.php kur var ievietot jaunas bildes velamos izmerus. tai skaita ari pashas bildes nosaukumu.. http://paste.php.lv/7638?lang=php Un te imageresize.php fails, kura pievienoju konstruktoru un __toString, un getSize() ievietoju list funkciju.. http://paste.php.lv/7639?lang=php Dīvaini ir tas, ka ja jau man bija tas const vertibas irWidth un irHeight, tad kada no vinjam jega, ja liekot resizeTo(width, height), vinjs tam vertibam nevar pieshkirt citu vertibu + ja varetu tad tas vnk nomainitu.. Nezinu vai visu izpratu ko teici, bet instanci parcelu uz action.php, pārakstiju nosaukumus, lai atbilst OOP standartiem :D , parcelu visu output uz action.php, nomainiju nosaukumu uz MyImage(laikam personiskās iegribas :D ), pieliku konstruktoru, kas padod celju uz bildi, uztaisiju __toString metodi.. Liels paldies tev palīdzibu jebkura gadijuma :) Tiešām gribas iemācīties :) Link to comment Share on other sites More sharing options...
john.brown Posted July 15, 2008 Report Share Posted July 15, 2008 (edited) nomainiju nosaukumu uz MyImage(laikam personiskās iegribas :D ) Nav personiskās iegribas :) Pierodi pie tā, ka iekš oop tu strādā un domā ar objektiem. Imageresize ir darbība - to grūti iztēloties kā objektu, MyImage ir konkrēts priekšmets (bilde), kas pilnīgi loģiski ir objekts. Dodot pareizus klašu nosaukumus, tu trenējies domāt pareizās kategorijās. Par pašu klasi. 1) metode getSize() - neredzu jēgu viņu taisīt publisku. Taisi private, un izsauc no konstruktora. 2) publiskas objekta īpašības ir slikts stils. Taisi private, un klāt tiec caur get/set metodēm: echo "Start Width: ".$img->getWidth()."<br/>"; echo "Start Height: ".$img->getHeight()."<br/>"; Palasi ko par inkapsulācijas jēdzienu. Edited July 15, 2008 by john.brown Link to comment Share on other sites More sharing options...
Prayer !! Posted July 16, 2008 Author Report Share Posted July 16, 2008 Ok, sapratu par to klašu nosaukumiem.. Daudzas lietas pārliku uz private, jo ublic tam naw nepieciešams.. Tad vel uztaisiju getHeight un get Width metodes ar visu string, bet protams var ari izvilkt tikai width un height un pashu stringu salikt kopa, ka john.brown rakstīja.. Pamainiju nosaukumu atbilstoshaku sakuma garumam un platumam, lidzarto praktiski varētu iztikt ar __toString metodi, lai izvilktu visas vērtības.. Un nebutu nepieciešamība pec getWidth un getHeight, lai to attēlotu uz ekrāna, bet protams praktiska pielietojuma, man to drošivien nevajadzēs darīt td arī tiktu izmantoti getWidth un getHeight metodes, vai ari tas vertibas saglabātas db.. Palasi ko par inkapsulācijas jēdzienu. man naw ne jausmas, kas tas ir :) un te ari ir faili action.php http://paste.php.lv/7641?lang=php un resizeimage.php http://paste.php.lv/7642?lang=php Link to comment Share on other sites More sharing options...
v3rb0 Posted July 16, 2008 Report Share Posted July 16, 2008 vēl failu, kurā glabā tikai vienu klasi, nosauc tāpat kā saucas klase, būs vieglāk orientēties kas kurā failā ir. inkapsulācija - tas ar ir, public/private/protected, tb. 'tiesības', kas un ko var ar objectu darīt. Domā par objektu, kā melnu bumbuli ar 3 podziņām un vienu mazu led ekrānu, saspiežot podziņas(izsaucot public metodes), kaut kas uz ekrāna parādās(arī public metodes izsaukums), bet kas bumbulim vēderā(private) objecta izmantotājam nav jāzin. Link to comment Share on other sites More sharing options...
Prayer !! Posted July 16, 2008 Author Report Share Posted July 16, 2008 esmu iepazinies ar inkapsulācijām :) vienigi atliek vinjas prakse pareizi izmantot.. kā kopumā izskatās, pieņemot to ka pamaina ari pasha faila nosaukumu..?? varbut vel kkas jamaina.. es domaju ka vsp man labi sanaca galu gala ar jusu palīdzību :) taka liels paldies :) Link to comment Share on other sites More sharing options...
andrisp Posted July 16, 2008 Report Share Posted July 16, 2008 Nu - tas nav īsti par OOP, bet nelabi, ka getWidth un getHeight metodes atgriež arī tos tekstus. Jēdzīgāk būs, ja atgriezīs tikai INTus un tekstus pēc tam piekabini klāt. Šis varbūt subjektīvi - man nekad nav paticis, ka funkcijai nosaukums ir getKautkas, ja reāli tā neatgriež neko. getKautkas imo ir priekš getteriem. (Tas par getSize()) __toString pielietojums arī nav īsti korekts, imo. Atbilstošāk būtu, ja tas, piemēram, atgrieztu tikai bildes nosaukumu vai ko tādu. Tb kaut ko tādu ar ko var operēt arī tālāk, nevis, kas ir tīri informatīvs tikai. Bet tās atkal tikai manas domas. Link to comment Share on other sites More sharing options...
Prayer !! Posted July 16, 2008 Author Report Share Posted July 16, 2008 nu ja tu butu palasijis visu postu un atbildes saprastu ka tas ir tikai lai izprastu OOP nevis praktiskam nolukam.. +es rakstiju ka par getHeight un get Width, un teicu ka labak butu atgriest tikai vertibas.. bet nu paldies par kritiku.. :D Link to comment Share on other sites More sharing options...
andrisp Posted July 16, 2008 Report Share Posted July 16, 2008 nu ja tu butu palasijis visu postu un atbildes saprastu ka tas ir tikai lai izprastu OOP nevis praktiskam nolukam.. Kāda tad jēga praktizēt OOP, ja netaisies to darīt "pareizi" ? Link to comment Share on other sites More sharing options...
Prayer !! Posted July 16, 2008 Author Report Share Posted July 16, 2008 em es jau kopsh atveru šo topicu mēģinu uztaisīt pareizi pēc OOP standartiem.. Tas ko tu uzrakstiji, bija tas pats ko es uzrakstiju dažus postus atpakaļ + nevajag piesieties pie katra varda ko pasaku, dieva del es vel tikai macos pielaboju sho skriptu biezi, praktiski es shis vertibas jaunas height un width nemaz neceltu uz ekrana vai vispar arpus objekta, iznemot ievaditu tās db, lai pectam varetu izmantot.. Link to comment Share on other sites More sharing options...
andrisp Posted July 16, 2008 Report Share Posted July 16, 2008 vuj, nu piedod, ja aizvainoju tevi.. Link to comment Share on other sites More sharing options...
Prayer !! Posted July 16, 2008 Author Report Share Posted July 16, 2008 (edited) neaizvainoji :D bet domaju ka nelasiji iepriekshejos postus.. anyway tas jau ir offtopics.. vel kkas būtu jaizdara pie shi skripta? Edited July 16, 2008 by Prayer !! Link to comment Share on other sites More sharing options...
v3rb0 Posted July 16, 2008 Report Share Posted July 16, 2008 (edited) __toString pielietojums arī nav īsti korekts, imo. Atbilstošāk būtu, ja tas, piemēram, atgrieztu tikai bildes nosaukumu vai ko tādu. Tb kaut ko tādu ar ko var operēt arī tālāk, nevis, kas ir tīri informatīvs tikai. Bet tās atkal tikai manas domas. ja lieto kādu logošanu, tad __toString(), kas atgriež visu informāciju par objectu(vai galveno, lielajiem objectiem), ieskaitot tā klases nosaukumu, man liekas ērti, vari rakstīt $logger->log($objects); un logā parādīsies kaut kas kas kā {Foo bar=1, fooChildi=[{Child id=1}, {Child id=2}]} kas ar nozīmē, ka $objects ir Foo klases, ar propertiju bar kas vienāds ar viens un diviem childiem, abi ir Child klases instances, vienam id ir 1 otram 2. Edited July 16, 2008 by v3rb0 Link to comment Share on other sites More sharing options...
Recommended Posts