Gilbert Skrevet 5. oktober 2004 Del Skrevet 5. oktober 2004 (endret) Hvordan bygger man opp et php-skjelett? Hvilke erfaringer har dere om det? Føler at siden jeg nå har er vokst ut av sitt skall, den ble mer omfattende enn forventet både besøksmessig og innholdsmessig. Det er på tide å få den mer oversiktlig, og da er det særlig et par ting jeg lurer på: Funksjoner Hvordan oppbevarer man disse best? Noen sider trenger noen funksjoner andre ikke trenger osv. Er det best å ha en fil for hver funksjon? En fil med alle funksjoner? En funksjon som finner hvilke funksjoner hver enkelt side trenger? Bør man ha en funksjon for hver eneste ting som skjer, f.eks. inkludere sider? Oversikt over alle includes Noen includes har forskjellige behov. Bør man lagre info om alle sider som inkluderes i mysql? En tabell med oversikt over hvilken meny som er aktivert, hvem som har tilgang o.l.? Hver enkelt side Jeg har for det meste bygd opp sidene med en topp og en bunn som inkuderes i et en side som finner ut hva som skal være på siden (eksempel: forum.php: if () $include ="denne" else $include "denne andre" include "top" include $include include "bot" ) MySQL Hvordan bør man bygge opp databaser? Slik jeg har det i dag endrer man kun en tabell.brukere hver gang man endrer noe profilbasert. Er det bedre å ha kun brukernavn og passord i en tabell, tekst på profilen i en annen, epostadresser i en tredje osv.? Webdesign Jeg forsøker å putte alt i divs, slik at jeg kan endre design uten å tenke på php-skjelettet. Det kan være greit å ha i bakhodet, det er litt av meningen med at jeg spør hvordan det er mest hensiktsmessig å bygge opp et skjelett. Det er helt sikkert mer jeg lurer på også, derfor er det fint om man baserer et svar på generelt om dette Håper noen av de mer erfarne forumbrukerene har mulighet til å komme med gode svar, men er interessant å høre hvordan dere alle bygger opp nettstedet deres! Endret 5. oktober 2004 av fjartan Lenke til kommentar
Nervetattoo Skrevet 5. oktober 2004 Del Skrevet 5. oktober 2004 Det er jo egentlig veldig mange spørsmål du stiller. Og veldig omfattende spørsmål. Jeg tror du bør prøve og spesifisere litt bedre når det gjelder spesifikke ting angående de forskjellige sider/skript osv. Når det gjelder akkurat database spørsmålet vedrørende bruker/profil vil jeg i en bruker tabell bare ha brukernavn, epost, passordhash, status, opprettet og eventuelt et modifisert felt. (Og eventuelt aktiveringsfelt om du bruker aktivering). Det er mulig du vil tjene på og lese litt om OOP, og da tenker jeg ikke på OOP sånn rent teknisk, mere teori og måten man tenker på ved OOP. Da vil du kanskje bedre klare og se for deg hvordan selve "skjellettet" av siden vil kunne bygges. Når du designer programmeringen av siden, ikke selve side designet men et design av hvordan php delen skal være med db tabeller, så lønner det seg ofte og komme seg litt bort fra pc'en og sette opp kriterier for hva som trengs, litt tanker om hvordan det kan løses osv. Tegn gjerne "kart" over funksjoner/klasser mot databaser og sider. Og lag noen tenkte faktiske situasjoner en bruker kan komme opp i og se det fra brukerens ståsted. Jo bedre du planlegger siden før du i det hele tatt gjør NOE som helst av design og programmer jo bedre resultat blir det, det kan jeg rett og slett garantere. Det er viktig og ha en plan. For små sider kan denne planen bare taes kjapt i hodet rett før man begynner, men etter hvert som siden blir mere komplisert må det gjøres bedre. Skriv ned planen. Noe jeg bruker og gjøre for å få en følelse av hva jeg trenger av db tabeller og skript så tegner jeg skjermbilder som viser forskjellige trinn av noe en bruker faktisk vil gjøre. Og da tegner (skisse) jeg for hånd, ikke på pc'en, for det er da enklere og ikke bli distrahert. Når det gjelder includes har jeg aldri hatt noe behov for å dokumentere dette spesielt eller bruke database til dette. Er en klasse/funksjon av henging at en annen klasse/funksjon som ikke blir brukt direkte i et skript så inkluderer jeg i klassen/funksjonen og ikke på i hovedskriptet. Det er kun filer med klasser/funksjoner som blir brukt direkte jeg inkluderer i et skript. Og ting som du vil ha på alle sider kan være greit og bruke en egen fil til. For meg så vil det ofte være behov for dette på så og si alle sider: DB klasse, session klasse, template klasse, errorhandler klasse. Da legger jeg alle inkluderinger av de og oppretting av objekter i en egen fil som jeg kaller på alle sider. En god tommelfingerregel er også at du aldri skal skrive samme koden to plasser i det store og hele. Da mener jeg selvsagt ikke at du ikke skal bruke echo eller if setninger der de trengs, men funksjoner. Når det gjelder designer ((x)html/css) bør ikke det ha noe særlig med php og gjøre på større sider, du bør prøve og separere det så mye som mulig for å lettere kunne vedlikeholde og gjøre endringer. Det innebærer ikke nødvendigvis at du bruker templates, men prøv i det minste og ikke ha masse store logiske setninger i den delen du skriver ut html i. Sett i det minste variabler som du kan skrive ut senere. Prøv også å strukturer skriptene med å ikke blande funksjoner med "vanlig kode", har du variabler som skal hardkodes så gjør det i starten av filen så du enkelt kan få øye på hvilke variabler som er i bruk. Ikke hardkod verdier eller noe, bruk variabler, det gjør det mere fleksibelt for fremtiden. Husk også å dokumenter godt. Og med godt så mener jeg ikke hver eneste linje for det skader mer enn det hjelper. Dokumenter alle funksjoner du lager, alle større kodeblokker osv. Det er litt vanskelig og svare på et såpass generelt spørsmål, men bare spesifiser mer så skal jeg prøve og svare mer. PS: Dette er ikke nødvendigvis noen fasit. Lenke til kommentar
Gilbert Skrevet 5. oktober 2004 Forfatter Del Skrevet 5. oktober 2004 Flott svar findus! Akkurat noe slikt jeg var ute etter, leste innlegget ditt med stor fornøyelse 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å