South_Bridge Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 Jeg har kodet litt php til "eget bruk", og det vil si at jeg har kodet mindre ting og da bare pøset på med kode. Men jeg har de siste dagene sittet litt med en tema sak som gjør at brukeren kan velge tema for en side ut ifra noen valgmuligheter. Men da jeg skal ta hensyn til cookies, valgmuligheter og slikt ble det igrunn litt grisete kode synes jeg. Utgangspunktet var noe ala: <div id="themeBox"> <label>Theme:<label> <select> <option>Gold</option> <option>Green</option> <option>Red</option> </select> Akseptabelt, alt er jo html. Men så kommer biten at valgmulighetene skal kunne styres litt fleksibelt og da ble det noe ala: <div id="themeBox"> <label>Theme:<label> <select> <?php $colors[0] = "Gold"; $colors[1] = "Green"; $colors[2] = "Red"; foreach( $colors => &$color ) { echo "<option>$color</option>"; } ?> </select> Nå er det litt på kanten for meg, fremdeles OK pga mengden. Men selectboxen skal gjerne vise selected og, så da må vi teste for det... cookie brukes. <div id="themeBox"> <label>Theme:<label> <select> <?php $colors[0] = "Gold"; $colors[1] = "Green"; $colors[2] = "Red"; $cookieColor = /* LES COOKIE */ $defaultColor = $colors[0]; foreach( $colors => &$color ) { if( isset( $cookieColor ) ) { if( $cookieColor == $color ) { echo "<option selected="yes">$color</option>"; } else { echo "<option>$color</option>"; } } else { if( $defaultcolor == $color ) { echo "<option selected="yes">$color</option>"; } else { echo "<option>$color</option>"; } } } ?> </select> Nå er jeg sikker på at det er feil i koden her men det jeg leter etter er annen måte å gjøre dette på så ikke sidene mine blir så grisete. Greia ovenfor som skal velge theme går feks på index siden og etter min mening er det mye gris for veldig lite... kunne jeg ha "modul-lert" det og stappa det inn i en rein php fil... som også er fleksibel? Jeg vet jeg kunne ha trøkka det inn i en php fil som det er men det er ikke særlig fleksibelt hvis jeg feks hadde flere select boxer jeg ønsket å fylle opp. Og arrayet er bare en tenkt datakilde, kan være lesing fra database/fil også seff. Koden ovenfor har heller ikke tatt for seg skriving av cookies og hvordan jeg sjekker for nytt valgt. Det kommer i tillegg seff. Lenke til kommentar
greygenic Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 - Indent your code. - Write comments. Lenke til kommentar
South_Bridge Skrevet 12. mai 2010 Forfatter Del Skrevet 12. mai 2010 Hehe... dårlig med lesbarhet, men det er ikke det som er poenget. Jeg lurer på hva som er normalt å gjøre når man skal hente en datamengde, sjekke et par ting og så spytte ut. I noen tilfeller blir det da veeeldig mye sjekking og roting og da for små filleboxer blir det da mye plass i koden. Lenke til kommentar
greygenic Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 (endret) Selv ved bruk av objekter, og/eller bare enkle funksjoner lagt i egne filer blir det fort mye kode. Så derfor må du bare gjøre koden så ryddig som mulig, dele den opp, og skrive passende kommentarer. edit: Det er utrolig hva du kan skrive en gang - gjemme bort i en fil - og bruke igjen og igjen... Endret 12. mai 2010 av greygenic Lenke til kommentar
nomore Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 For å gjøre det ryddig så må du lære deg å skille mellom data, grensesnitt og kode. Det heter MVC(model-view-controller). Koden er selve koden som kjører, tar avgjørelser, manipulerer data og foretar selve programflyten/scriptkjøringen. Data er selve dataene du skal presentere, og ikke minst definisjonen på hvilke data som er tilgjengelig og hvordan de dataene er utformet. Grensesnitt er selve HTML-koden(og gjerne CSS) som forteller nettleseren hvordan dataene skal se ut. Lenke til kommentar
South_Bridge Skrevet 12. mai 2010 Forfatter Del Skrevet 12. mai 2010 (endret) For å komme med et forslag jeg nettopp kom på, hva med strukturen: <?php /* PHP includes */ include( "code/themes.php" ); ?> <html> <head> <!-- Javascript Includes --> <script type='text/javascript' src="themes.js"></script> <!-- Standard Style --> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="themeBox"> <label>Theme:</label> <select onChange="ThemeChange(this);"> <?php printColorOptions(); ?> </select> </div> <div id="box"> <h4>Themes...</h4> </div> </body> </html> All fancy shitten blir da flytta vekk i sine egne filer. Eneste "logistikk" problemet blir transportering av sessionvariabler og cookiedata. mister mye fleksibilitet, men det ville manha gjort uansett tror jeg... Endret 12. mai 2010 av South_Bridge Lenke til kommentar
nomore Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 Der skiller du kode fra design, så da er du på vei Lenke til kommentar
South_Bridge Skrevet 12. mai 2010 Forfatter Del Skrevet 12. mai 2010 Der skiller du kode fra design, så da er du på vei Yes, var det jeg var ute etter... syntes det ble bra Men ikke ferdig da. Jeg sitter å lurer på hvordan jeg skal gjøre det med cookies/session variabler Lenke til kommentar
hallegyn Skrevet 12. mai 2010 Del Skrevet 12. mai 2010 For å gjøre det ryddig så må du lære deg å skille mellom data, grensesnitt og kode. Det heter MVC(model-view-controller). Helt enig. Et praktisk tips kan være å se på noen som har gjort dette veldig pent, f.eks folka bak symfony. (Bare det jeg har brukt mest, har ikke noen mening om hvem av de som er best.) Jeg fikk meg en aha-opplevelse da jeg begynte å lese dokumentasjonen deres, og siden den tid har koden min vært betraktelig mer ryddig, både med og uten rammeverk. Det tar et par timer å lese, så det kan være verdt å sitere onkel Bob: (sigh). There's never time to do it right, but there's always time to do it over. - Uncle Bob Lenke til kommentar
salah Skrevet 14. mai 2010 Del Skrevet 14. mai 2010 Finnes det noe guider/tutorials/dokumenter/artikler/hva som helst om hvordan man kan strukturere kode og design (HTML)? Sliter med det selv Lenke til kommentar
hallegyn Skrevet 14. mai 2010 Del Skrevet 14. mai 2010 Finnes det noe guider/tutorials/dokumenter/artikler/hva som helst om hvordan man kan strukturere kode og design (HTML)? Tja, har ikke tid til å kvalitetskontrollere, men her er noe som ser brukbart ut: http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/ Lenke til kommentar
South_Bridge Skrevet 15. mai 2010 Forfatter Del Skrevet 15. mai 2010 Finnes det noe guider/tutorials/dokumenter/artikler/hva som helst om hvordan man kan strukturere kode og design (HTML)? Tja, har ikke tid til å kvalitetskontrollere, men her er noe som ser brukbart ut: http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/ I steden for å lage sin egen finnes det bedre alternativer, http://codeigniter.com/ for eksempel ville jeg tro. Lenke til kommentar
nomore Skrevet 15. mai 2010 Del Skrevet 15. mai 2010 CodeIgniter er eg veldig fornøyd med. Anbefales på det sterkeste. Lenke til kommentar
TheRealL Skrevet 15. mai 2010 Del Skrevet 15. mai 2010 Må bare henge meg på her og si at jeg er ekstremt fornøyd med CodeIgniter også. Har skrevet mitt egent Framework og brukt andre kjente Framework som Zend og Symphony, men ingenting kan matche CodeIgniter. Lenke til kommentar
salah Skrevet 16. mai 2010 Del Skrevet 16. mai 2010 Men ville dere for en relativt liten side brukt deres egen kode eller bruker dere alltid framework? Snakk om å lage en side med forside-omoss-kontakt-tjenester hvor på forsiden er det en liten rute med månedens tilbud, på tjenester har du to felt som du kan legge til, redigere og slette, som f. eks. Negldesign 299 ,- Hørte av en at "ingen sider er for små til å bruke framework", men jeg er temmelig uenig i dette. Hva er deres synspunkt rundt dette? Lenke til kommentar
nomore Skrevet 16. mai 2010 Del Skrevet 16. mai 2010 Om du kun skal lage en side bestående av statiske HTML-sider så ville eg ikke brukt et rammeverk. Evnt ville eg vurdert å bruke en ferdig CMS løsning om det er noe enkelt. Men ellers ville eg gått for rammeverk, uansett. Hvorfor mener du at du ikke skal gjøre det? Lenke til kommentar
TheRealL Skrevet 16. mai 2010 Del Skrevet 16. mai 2010 Enig der. Rammeverk, always. Selv om det bare er en side som skal vises, så er det fint med rammeverk. Da er det mye lettere og utvide siden senere. Koden ser mer strukturert ut osv. Lenke til kommentar
salah Skrevet 16. mai 2010 Del Skrevet 16. mai 2010 Jeg synes det er så utrolig mye jobb med å sette opp ting og tang og konfigurasjon også videre. Men nå har jeg lest litt og prøvd ut CodeIgniter og trekker derfor mitt siste spørsmål tilbake. Utrolig hvor bra den ser ut til å være, og den inneholder akkurat nok med klasser som man får bruk for, den er rask (også oppsettet) og oversiktlig. Brukte Zend før den, og det var mye rot og knutring før man kunne starte på selve siden. 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å