Gå til innhold

PHP vs Perl objektorientert programmering


Anbefalte innlegg

Kan noen nevne noen likheter/ulikheter når det gjelder objekt orientert programmering i perl vs PHP. Hva er den største forskjellen mellom disse språkene når det gjelder oo-koding? Hvordan håndteres for eksempel arv i PHP?

Lenke til kommentar
Videoannonse
Annonse

oj. det var et voksent spørsmål.

 

jeg er rimelig full av fordommer, så jeg skal ikke si så mye så tidlig i tråden, men OOP i PHP4 er relativt dårlig og mangelfull. Mye av dette er etter sigende rettet opp i PHP5, uten at jeg har særlig fartstid i denne versjonen.

 

OOP i perl (kjenner du det?) har fått en del ufprtjent pepper. Denne er ganske bra, hvertfall et par sjumilsteg foran OOP i PHP4.

 

Jeg opplever imidlertid at OOP sjelden er egnet for webapplikasjoner. Det blir mest en samling av enkeltfunksjoner som man likevel kunne kjørt hver for seg.

Lenke til kommentar
  • 3 uker senere...

Er interessert i å få vite hvordan PHP håndterer tilgang til objekt-data for objekter i klasser som benytter arv.

 

Som kjent må en i perl legge på endel kode (finne opp hjulet) for å sørge for skikkelig sikring av data (innkapsling) mellom klasser - dvs det finnes ikke noe a'la "private/protected" konstruktører slik som i c++ som gjør at man kan hindre direkte manipulasjon av objekt-data, slik at dersom vi har et objekt B fra klasse B, som arver data/metoder fra klasse A, så skal det ikke være mulig å endre på data i objekt B som kommer fra klasse A uten å gå via metoder som er definert i klasse A.

 

Hvordan er dette i PHP? Kan man fra en klasse uten videre få tilgang til data/metoder som arves fra en en annen klasse eller er det mulig med (skikkelig)innkapsling av data/metoder mellom klasser?

Lenke til kommentar

PHP4:

var $variabel;

 

PHP5:

protected $variabel;
abstract protected $variabel;
private $variabel;
public $variabel;
public static $variabl;
static $variabel;
final public $variabel;

 

Mye som har skjedd. ;)

 

En veldig god og utdypende artikkel (kanskje litt gammel) om hvilke fordeler PHP5 gir deg mtp. OOP :)

 

Sjekk også ut hva PHP-manualen sier om OOP i PHP5: http://no.php.net/manual/en/language.oop5.php

Endret av jorgis
Lenke til kommentar
Gjest Slettet-df17e

Mens vi er inne på dette!

Hva er egentlig vitsen med OOP i php ?

 

EDIT: Altså, jeg klarer ikke helt se fordelen med det.

Endret av Slettet-df17e
Lenke til kommentar

Fordelene er vel de samme som med OO utvikling ellers i andre språk. Dersom man kun skal ha noen få script i PHP, så er vel OO liten vits - fordelene kommer i litt større systemer/sammenhenger. Vet ikke om du kjenner til generelle retningslinjer for når OO er tilrådelig å benytte - for eksempel:

- når vi ønsker å organisere data som logisk hører sammen

- når det er flere funksjoner som skal utføres på samme data-type

- når vi vil ha innkapsling av objekt data fra "bruker" (dvs end-user av klassen)

- fordeler mhp gjenbruk av kode og dokumentasjon

- muligjøre utvidelse av eksisterende kode uten å endre mer enn høyst nødvendig, fleksibilitet mao.

 

OO-utvikling er en måte å løse problemer på som tar litt tid til å bli vant til. Det minner (meg) litt om den tankegang endringen som man må gjennom når man går fra tradisjonell programmering til event-basert programmering på den måten at det er nye prinisipper og innfallsvinkler for å løse problem sml med hvordan vi tidligere har gjort det..

Lenke til kommentar

Selv om OOP i PHP4 er rimelig dårlig støttet er det ingen unnskyldning for å ikke bruke det.

Veldig mye av det du tjener på OOP er at man følger "gode skikker". Selv om man ikke kan sette en variabel til å være private eller public kan man fint tenke seg at den er det:

 

class foo {
var $a;

function getA() {
return $this->a;
}

function setA($value) {
$this->a = $value;
}
}

$foo =& new foo;
$bar = $foo->getA();

 

Selv om jeg her ikke har en private variabel kan jeg fint late som, og dermed innføre god skikk og kontroll.

 

Selvsagt må man vurdere om størrelsen på prosjektet tilsier at man skal bruke OOP.

F.eks bruker vi etterhvert en del OOP i funksjonaliteten i hardware.no-nettverket, og vi kjører så absolutt PHP4.

 

Man merker særlig godt fordelene når man er flere utviklere som jobber om hverandre på en mengde tjenester som vi gjør.

 

At man ikke trenger OOP i webapplikasjoner kan være sant det, men man trenger det da vitterlig ikke noen plasser da.

En stor webapplikasjon kan for være på veldig mange tusen linjer kode, og da hjelper OOP ganske mye på å strukturere dette, og gjøre det mer "brukervennlig" for de som utvikler det.

 

Nå har jeg fint lite kjennskap til Perl, så jeg er jo egentlig litt offtopic.

Vil bare poengtere at selv med den OOP støtten som finnes i PHP4 bør man absolutt bruke det dersom man jobber med noe litt større en en "vanlig halvstatisk side".

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...