Jump to content
php.lv forumi

PHP OOP sux...


Recommended Posts

Es nesen saaku rakstiit dazjas klases PHP turpmaakiem projektiem - calendar klasi, menu gjeneratoru utt. Vaardu sakot nelielas klasiites, kuras vareetu izmantot un modificeet gandriiz jebkuraa projektaa.

 

 

Es kaadu laiku arii esmu njeemies ar C++ un OOP, un nonaacu pie secinaajuma, ka PHP OO salidzinot ar C++ OO veel ir beernu autinjos, kaapeec? Te mineeshu dazjus iemeslus:

 

1) Kas ir OOP bez iekapsuleeshanaas? Pati OOP filozofija ir taada, ka klasee tiek defineetas metodes/f-cijas ar kuraam tiek apstraadaati, ieguuti mainiigie, veertiibas, BET PHP ljauj pa tiesho piekljuut jebkurai veertiibai.

 

2) Kas ir OOP bez polimorfisma? Liidziigi kaa 1) arii shii iipashiiba ir pashos OOP filozofijas pamatos. BET PHP neljauj rakstiit polimorfiskas metodes/f-cijas. Es esmu diezgan daudz darbojies ar C++ un polimorfisms ir vienk superiiga fiicha.

 

3) Cik zinu, tad nav atii NameSpace, vai arii nemaaku tos izmantot...

 

Protams, daudz ir runaats par to vai PHP vispaar vajadzeetu taadu OOP un kaa tas ietekmee performanci, bet teiksim, ja straadaa ar PHP CLI versiju, tad es domaaju OOP ir ljoti noderiigs serveru programmatuuras izstraadee.

Man interesee Juusu domas par to! :)

Link to post
Share on other sites

par to iekaspuleeshanos, laikam nebuushu izpeetiijis manuaaljus riktiigi... tie atsleegas vaardi: protected, public utt. laikam ruupeejas par to, ne?

 

Tipa defaultaa piekljuve ir public?

Link to post
Share on other sites

PHP OOP tas viss nav vajadzīgs.

 

PHP ir tikai interpreters un pa tiešo ar lietotāju nav nekādas saskarnes - PHP izdod tikai gatavu rezultātu - t.i. no ārienes tu nekādīgi nevari iespaidot PHP darbību.

 

PS: nerunāsim par debugeriem

Link to post
Share on other sites

Es nerunaaju par iespaidoshanu no aarienes, manupraat koderam ir vieglaak rakstiit lielus projektus ieksh OOP. Un ne vienmeer tas ir tikai WEB-based projekts, bet gan server-side.

 

P.S. --- es nerunaaju par debuggeriem! :)

Link to post
Share on other sites
Es nerunaaju par iespaidoshanu no aarienes, manupraat koderam ir vieglaak rakstiit lielus projektus ieksh OOP. Un ne vienmeer tas ir tikai WEB-based projekts, bet gan server-side.

 

P.S. --- es nerunaaju par debuggeriem! :)

19512[/snapback]

 

Nu un... kāda starpība? PHP OOP ir tik vienkāršs ka tas tikai dod savu "+" - nafig nevajag neko ilgi murgot - rakstīt vēl papildus getterus/setterus - rakstam vienkāršas, ērtas, ātras f-jas, kas dara savu darbu.

 

Ko tu vēl gribi??? Klase pilda konkrētu izdevumu - basta.

Link to post
Share on other sites

Server-Side appus rakstam iekš C++ (ar visu super-puper OOP).

PHP jālieto tur, kur tas ir jālieto.

PHP nav threads - so, server-side nekādīgi neder.

 

PS: kas tev ir teicis, ka rakstīt C++ klases ir ērti? varu saderēt ka lielākā daļa no PHP koderiem pat nav redzējuši C++. - varbūt tas viņiem liekas `drausmīgi sarežgīts`, nevajadzīgs, un enkad neskarsies tam.

Link to post
Share on other sites
Var jau buut.... <_<

 

Tapee arii prasu citu domas, vienkaarshi daudz kas ir pret OOP filozofiju kaa taadu.

19515[/snapback]

 

kas tur ir PRET !?

nosaucam OOP implementāciju iekš PHP kā `PHP-OOP`

 

`PHP-OOP` != `OOP`

 

basta. kas tur vēl nav skaidrs?

 

varu iedot piemēru - ņemam gludekli un čainiku (ūdens sildītājs) - abi kaut kādā veidā ražo karsto ūdeni - so abus var lietot kā ūdens sildītāju tējai. nu bet ikdienā tu taču nelej no čaiņika uz drēbēm un tad gludini, un otrādi - no gludekļa nelej karsto ūdeni krūzē!

 

katrai lietai ir savs pielietojums.

Link to post
Share on other sites

Kā jau Delfins saka, katrai lietai savs pielietojums, bet nu taviem trim punktiem nevar piekrist.

 

1) ir pieejams kopš php5, private/public/u.c. Taču liela jēga notiem, ja sources tāpat pieejamas un palabot tās neviens neliegs?

 

2) var rakstīt. Sintakse lai gan nav tik smuka, bet ir iespējamas fjas ar dažādu argumentu skaitu

 

3) arī namepaces ir. nu vismaz kautkas līdzīgs tām, bet ne tik smukā sintaksē:

class blabla {
  static function xxx() { ... }  
}

blabla::xxx();

Link to post
Share on other sites

php ir dinamiska valoda. Mainīgo tipi nav jādefinē. Vienā vietā var rakstīt $i=5; nākamajā rindiņā $i='abc'; Tā ka dažādi tipi var būt. Vai nu pašam jānosaka tips un ko ar to darīt, vai arī jāuzticās, ka interpretators pārvētīs kā vajag.

Link to post
Share on other sites
×
×
  • Create New...