Gå til innhold

Kan noen forklare bruken av klasser? oop?


Anbefalte innlegg

Jeg har holdt på med PHP en stund, og har kommet over dette med klasser. men alle eksempler ol. som jeg leser for å prøve å lære meg det kan løses med funksjoner uten klasser iallefall slik jeg forstår det. Hva er poenget med klasser? Hvorfor bruke klasser? Som sagt, jeg har lest utallige mange guider om dette, men jeg skjønner ikke poenget med det og da er det veldig vanskelig å lære seg det. kan noen komme med et eksempel på oop som ikke kan løses uten?

 

Takker for alle oppklarende svar

mvh Christian

Lenke til kommentar
Videoannonse
Annonse

Dette er et spørsmål som fort vil besvare seg selv når du begynner å jobbe på større prosjekter.

 

Så fort du har kode som du bruker i flere sider så er det enkelt å samle alt dette i en class. På den måten blir koden din mye mer ryddig, i tillegg til at dersom du må endre på den så holder det med å endre et sted.

 

Jeg kan forsøke å illustrere litt enklt. Databaser, de fleste scripts er avhengig av de, og derfor vil en kode som dette være aktuell:

 

$connect = mysql_connect("localhost", "user", "pass")

or die("Beklager, kunne ikke koble til databaseserveren");

$select_db = mysql_select_db("databasenavn")

or die("Beklager, kan ikke finne databasen");

 

if (!$connect or !$select_db) {

// varsle admin om at det er problemer

mail ("[email protected]", "Problemer med database", "bla bla bla");

}

 

$query = "SELECT * FROM tabellnavn";

....

 

 

Dette er en kode du må plassere på ALLE sider som bruker denne tilkoblingen. Tenk deg nå at du vil gå over til persistent tilkobling - og at denne koden ligger i ca. 20 - 50 forskjellige sider. Da må du åpne alle sidene og endre de... det tar tid! Eller tenk deg at du vil gå over til mysqli_... - like mye jobb - glem ikke at du må teste sidene også etter du har endret de.

 

Den praktiske delen burde derfor være lett å forstå. Tenk deg at alt scriptet over kan skrives slik i PHP sidene:

 

$sql->connect("localhsot", "user", "pass", "database");

$sql-query("SELECT * FROM tabellnavn");

 

Vil ikke de se mye bedre ut?

 

Ulempen der i mot med OOP er at det faktisk er litt tregere, men dette er veldig minimalt - og fordelene veier fort opp. Så lenge man utvikler enkle scripts på en side så er det ikke noen spesiell fordel, men man begynner på scripts med totalt flere tusen linjer fordelt på mange sider så er det veldig nødvendig.

Lenke til kommentar

Med klasser kan du lagre data internt, ikke bare funksjonalitet som med funksjoner. Tenk deg: du har ti funksjoner som arbeider med en databasetilkobling. For hver funksjon må du ha databasetilkoblingen som et parameter. Samtidig får du tilbake et resultatsett fra databasen. Så skal du jaggu meg holde styr på det som parameter også, og så baller det på seg.

 

En annen fordel med OOP er at du kan tenke i mer abstrakte baner, og kan innkapsle den funksjonaliteten du trenger. Så benytter du bare klassens interface mot utverdenen, og er fri til å endre på klassens interne struktur. Dette er nyttig for mange ting, f.eks. databaseabstraksjon. Når det er sagt, er ikke OOP alltids løsningen i php.

Lenke til kommentar

Hm, ble ikke akuratt overbevist om å lære meg det, men som sagt så vil jeg finne ut av det når jeg kommer til større prosjekter. Vi får se.

 

Dere sier at OOP ikke er den beste løsningen i php, da regner jeg med at det ikke haster så veldig å lære seg det. Jeg får ta det som det kommer.

 

Takk for en fin forklaring ???? og Me sjøl ;)

 

mvh Christian

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...