Objektorienteret programmering i PHP

Tags:    php oop

Hej Udviklere.

Jeg har efterhånden forstået for meget nemmere det bliver at vedligeholde og holde styr på min php kode hvis jeg laver det med classes i stedet for ren scripting.

Jeg har dog nogle spørgsmål til hvis man skal lave større projekter, f.eks.

- Hvordan deler man bedst klasser op?
- Er det smart med mange eller få klasser? (Hastighed/Nemhed)

Det kan være jeg finder på nogle flere, men det er det jeg lige kunne komme på nu.

Mvh. Andreas Voss



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Der er mange designpatterns der har med klasser at gøre. Der er ikke som sådan nogen grænse på hvor mange klasser man skal/kan have, men hvis du benytter et pattern, vil det være begrænset hvor mange klasser det vil.

Det kommer selvfølgelig også an på hvilken slags applikation du laver, da det ikke er alle designpatterns der er lige velegnede til alle slags problemer.

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller




Objekt orienteret programmering er når du "bygger" en bil ud af klasser og instanser. ;)

Idéen med OOP er at hver klasse har sin helt egen funktion, og den funktion som klassen har, det gør den helt ekseptionelt godt.

F.eks. har du en klasse til database kommunikation har denne klasse til opgave at kommunikere med databasen - og den opgave skal klassen klare til et 12-tal. Når man så har en klasse der klarer sin opgave helt perfekt, behøver man jo så ikke længere at skrive ny funktionel kode, men i stedet kan man bruge klassen.

Det giver så nogle udfordringer i forhold til hvordan man designer sin kode. Det er her design patterns kommer ind, og egentlig er det nok det OOP handler om. Men design patterns kan være relativt kryptiske, og er man ikke vant til at opdele sin kode, så er MVC- eller 3-lags modellen ret så avanceret (især fordi der ikke er nogen entydig definition på hvad M'et i modellen dækker over).

Mange gange kan man overføre hverdagsting til OOP. Så som den førnævnte bil. Bilen er konstruereret af en række komponenter (objekter): hjul, rat, motor, chassis, mm. Hvert objekt er så en instans af en klasse, hvor klasserne er beskrivelser af objekterne.

Håber det giver mening. :)



Der skal være lige så mange klasser som din analyse har fundet. Så du laver ikke klasser efter om det er smart eller ej.

Der findes utallige bøger om softwareudviklingsprocesser der beskriver denne analysefase og hvordan man kan finde evt. klasser. Så der er ikke lige en nem forklaring på det.



Hej Andreas.

Jeg bruger ikke så meget klasser som jeg ellers burde, men, jeg har en fast klasse, som jeg kalder html_class.php, den indeholder det standart html jeg bruger utallige gange på samme domain.

Det redigere jeg såment i når jeg kopire filen til et nyt domain, og ændre lidt på, men, uden at skulle lave det store arbejde.. Derfor kan jeg som reglt altid benytte samme "template" udfra en enkelt klasse.



Hej Andreas.

Jeg bruger ikke så meget klasser som jeg ellers burde, men, jeg har en fast klasse, som jeg kalder html_class.php, den indeholder det standart html jeg bruger utallige gange på samme domain.

Det redigere jeg såment i når jeg kopire filen til et nyt domain, og ændre lidt på, men, uden at skulle lave det store arbejde.. Derfor kan jeg som reglt altid benytte samme "template" udfra en enkelt klasse.


Nu bliver det jo ikke objektorienteret, bare fordi du laver en "include-fil/template" med din html ;-)



Tak for svarene, de var utroligt gode. ;)

Så må jeg hellere komme ud og kigge på nogle design patterns. :D



Så må jeg hellere komme ud og kigge på nogle design patterns. :D


Jeg synes også, at du skal finde en grundlæggende bog om objektorienteret programmering / forståelse for OOP.





t