CruellaDeVille Skrevet 9. juni 2006 Del Skrevet 9. juni 2006 Jeg har forstått at det skal være mulig å programmere 100% objektorientert i php, men jeg forstår ikke helt hvordan det skal gå til. I java er det greitt, for da tenker jeg at alle metodene tar tak i hverandre til en lang kjede helt til programmet er slutt, men i php fungerer ikke denne tankegangen, siden "et nytt program" starter for hver side jeg lager. (med mindre jeg mellomlagrer objekter fra side a til side b/c/.../n i sessions, hvilket jeg ikke anser som særlig lurt). Så spørsmålet blir da - er dette feil tilnærming på skille presentasjon og kode i php? (lang kjede osv) Eksempelvis... Jeg holder på med et skript for bildehovring, http://cruella.lostdot.com/gallery2/test3.php. Dette skriptet bruker en klasse, directoryReader, som eneste den gjør er å lese en mappe og sende ut filer av typen <filtype>. Kunne likegjerne vært implementert som en funksjon. Videre. Hadde en klasse som het ImageHover, som eneste den gjorde var å skrive ut html og css, noe overkill det også, siden html og css likevel måtte settes. Det å skrive html og css rett i ImageHover fungerer ikke, siden jeg bruker ulik css og html alt etter hvilket prosjekt jeg holder på med (versjon 3 så langt). Så kunne jeg tenkt på arv. ImageHoverLeft extends ImageHover osv... men det ville blitt en fullstendig merkelig, for da måtte jeg hatt en subklasse for hver subtype (ImagehoverRight/top/bottom/ osv) Så hvordan kan man skille logikk og presentasjon i slike prosjekter? Blir veldig takknemlig for svar.. dette bugger meg skikkelig Lenke til kommentar
diskvask Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Templates? http://smarty.php.net/ http://pear.php.net/package/HTML_Template_Sigma/ Lenke til kommentar
Nervetattoo Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Dette er noe som ikke er så lett å finne gode ressurser på på nettet, så derfor vil jeg anbefale deg noen bøker. Særlig siden jeg ikke orker sitte her og skrive et superutfyllende svar når det er så utrolig fint vær + fotball-vm PHP 5 Objects, Patterns and Practice PHP|Architect's Guide to PHP Design Patterns The PHP Anthology: Object Oriented PHP Solution, Volume 1 The PHP Anthology, Volume II: Applications Og ja, det er mulig å skrive 100% OOP i PHP, sånn rent bortsett fra at du antageligvis ender opp med en front/page/application -controller som kjører to linjer: $foo = BarController; $foo->execute(); Men såpass får man tåle Litt mer spesifikke spørsmål kan jeg svare litt mer spesifikt på om du vil. Lenke til kommentar
mikaelandre Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Hvorfor er det ikke særlig lurt å lagre objekter i session? blir ikke det mer effektivt enn å bygge opp hele objektstrukturen for hver side som vises? Lenke til kommentar
Nervetattoo Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Hvorfor er det ikke særlig lurt å lagre objekter i session? blir ikke det mer effektivt enn å bygge opp hele objektstrukturen for hver side som vises? 6281636[/snapback] Det er iofs greit å lagre objekter i sesjonsvariabler, men husk å ikke lagre ressurser da. Dessuten må du passe på så ikke halvparten av objektene dine plutselig er avhengig av en superglobal $_SESSION array. Objekter må også opprettes på nytt ved hver sidevisning, det er umulig å gjøre noe med, men om objektene er avhengige av spørringer eller annen modifikasjon så sparer du jo selvsagt den biten ved å lagre data. Det du kan gjøre er å lage et system for å "persist" (kommer ikke på noe godt norsk ord) objekter i sesjonen. Kanskje ta en titt på noen av de ferdige bibliotekene som finnes for persistens av objekter til fil/database. Lenke til kommentar
Frank2004 Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Så hvordan kan man skille logikk og presentasjon i slike prosjekter?Blir veldig takknemlig for svar.. dette bugger meg skikkelig 6278593[/snapback] Det du holder på med er vel strengt tatt ikke å skille presentasjon og logikk, men heller å lage et objektorientert presentasjonslag. Jeg vil si dette er en blindgate, og foreslår at du holder deg til templates (og subtemplates) for å lage websider. PHP skulle være et ok templating-språk i seg selv, om du har selvkontroll nok til å ikke blande inn forretningslogikk i presentasjonen. Foreslår at du ser på MVC-patternet, som bla.a. beskrives her: http://en.wikipedia.org/wiki/Model-view-controller Lenke til kommentar
Nervetattoo Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Det du holder på med er vel strengt tatt ikke å skille presentasjon og logikk, men heller å lage et objektorientert presentasjonslag. Jeg vil si dette er en blindgate, og foreslår at du holder deg til templates (og subtemplates) for å lage websider. 6282355[/snapback] Det finnes absolutt caser der det egner seg med et eget objektorientert presentasjonslag. Som en del av et rammeverk som brukes til å generere haugevis med forskjellige lister/statistikk i forskjellige formater ville jeg nok ikke valgt templating. Men generelt sett så egner templating seg mye bedre. Lenke til kommentar
genstian Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Har serveren eaccelerator kan du bruke eaccelerator_put('klasse', serialized($klasse)); og $klasse = unserialize(eaccelerator_get('klasse')); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå