spango skrev:
I klassisk PHP finns det knappt någon anledning att OOP:a, bortsett möjligen från att slå in exempelvis databasåtkomst i ett någorlunda uniformt paket. Kör man så stora grejer att OOP blir viktigt är det ingen bra idé att köra PHP.
Detta argumentet har jag sett så många gånger, eller - argument o argument, påstående.
Vad är just "så stora grejer", facebook? yahoo? Ja, visst finns det applikationstyper där PHP verkligen inte passar, men "så stora grejer"? Yahoo har mest trafik i hela världen o bygger sin platform på Symfony och om några vet vad dem gör så är det ju grabbarna där.
spango skrev:
Problemet med PHP är inte att språket inte är "rent objektorienterat" (eftersom inga språk som används i någon större utsträckning idag är det), utan att själva ramverket är filbaserat snarare än objektorienterat. I PHP har du din scriptfil och sen körs den igenom uppifrån och ner när nån kommer in på den. I ett objektorienterat ramverk knyter du en "sida" (ett ytterst vagt begrepp i det här sammanhanget) till en klass, eller en metod i en klass. Struts 2 är ett bra exempel på hur ett objektorienterat ramverk kan se ut.
Att ta orden "rent objektorienterat" och java som exempel i samma stycke känns, tvetydigt. Det Struts2 gör är en avancerad form av den Routing vi ser i t.ex. Ruby och PHP. Stora delar av Struts2 går att implementera rakt av i PHP utan minsta problem.
spango skrev:
Sen vill jag också påminna om att lösa funktioner inte är dåliga i sig. Det finns massor av fall där det är vettigare att ha lösa funktioner än en "public static" metod i någon klass som ändå aldrig instansieras.
Verkligen, och det är därför det är så skönt att man inte är tvingad att ta till public static i php ;).
Compusa skrev:
Ska man köra stenhårt på objektorienterad programmering och kunna utnyttja paradigmet fullt ut så krävs det att programmeringsspråket har 100-procentigt OO-stöd, PHP är inte ens nära även om det blivit bättre. CakePHP och PHPonTrax ändrar inte detta faktumet (PHPs oo-modell) utan är endast ett framework för att underlätta utveckling i PHP. Visst kan man ändå köra på OO-spåret med PHP, men man bör vara medveten att man långt ifrån kommer kunna utnyttja OOPs alla fördelar.
Ja det finns små saker som saknas i PHPs OO-modell, men av alla dessa saker så är det väll bara korrekt Överlagring jag saknar när jag gör mitt dagliga arbete i PHP - och det går att leva utan i många fall. Mycket av funktionerna är syntax socker ;)
spango skrev:
Med PHP menade jag förstås "klassisk PHP", my bad. Nu tycker jag iofs fortfarande att PHP är en dålig idé för Riktiga Projekt, om inte annat så p.g.a. allt rabalder om säkerheten.
PHP i sig är inte mer osäkert en .NET eller Java - det handlar till stor del om det faktum att instegströskeln till PHP "inte" är hög nog och det resulterar i att det blir mycket hemmasnickrare och liknanade som dras hit och således blir det mer fel och brister i applikationer skrivna i php - det beror inte på språket utan på de utvecklare som jobbar med det. Sen blir det automatiskt fler fel upptäckta i den platform som är störst, det är en självklarhet. Se t.ex. på Linux vs. Windows - fler människor försöker ha sönder windows eftersom det är störst och således kan man påverka fler människor med de upptäckter man gör. Det är nackdelen med att vara störst helt enkelt.
Och som jag tidigare "Riktiga Project", Yahoo - världens absolut största site (legat #1 på top1000 listan i tre-fyra år nu) använder PHP+Symfony. Det Argumentet fungerade år 2000 när php4 precis släpptes, nu är det sju år senare och vi som har varit med hela vägen har sett hur extremt mycket php har utvecklats.
itpastorn skrev:
- Multipla arv
Multipla arv finns inte i Java vad jag vet, nu var det nog två år sedan jag gjort något serriöst i java men det ska inte ha ändrats vad jag vet? Samt att i 99 av 100 fall är multipla arv mer ett problem än en tillgång.
itpastorn skrev:
- "Finally" för try-catch
Detta saknar jag, men det går att emulera om man _verkligen_ behöver det och det är mer syntax socker.
Utöver det så min nog min slutpoäng denna: Det gäller att välja rätt verktyg för rätt jobb, men PHP passar för 99 av 100 webbjobb.
Edit: Ursäkta för min totala oförmåga att stava, är helt söndersliten efter att ha jobbat för mycket och ska gå o sova nu, godnatt :).