Ma nekdo predstavu, k cemu mi je polyformismus, kdyz se v PHP nedela typova kontrola promennych? Tj. je totez napsat:
class aaa {
function out() {
echo "aa";
}
}
class bbb extends aaa {
function out() {
echo "bbb";
}
}
------------- a --------------------
class aaa {
function out() {
echo "aa";
}
}
class bbb {
function out() {
echo "bbb";
}
}
------------------------
stejne pak muzu prirazovat vesele:
$x = new aaa();
$x->out();
$x = new bbb();
$x->out();
v cecku to ma logiku, protoze bych musel napsat:
aaa x;
x = new bbb();
x->out();
a tim by priklad cislo 2 nesel. V PHP to ale nechapu. Zvlast kdyz jde napsat treba:
$y = "aaa";
$x = new $y();
a to zdaleka neni extremni pripad, jdou i horsi!
Ja osobne v dedeni v PHP vidim jenom usetreni prace s copy-paste. Ale treba kdyz chci zdedit metodu ale pridat ji neco MEZI stavajici kod, tak stejne musim copy-paste :(
mimochodem, prisel nekdo na to, jak volat callback funkci z metody nejake tridy (i kdyz uznavam, jde o krok mimo z objektoveho modelu. ale jse mi o neco jako jsou volani udalosti v C#.). moje pokusy nejak zklamaly :(
btw nedela nekdo na nejake zastresujici knihovne? Neco jako MFC pro HTML? Vypada to docela blede, podle poctu prispevku pod clankem a podle dotazu na builder.cz (jinak tez :lamerzone:) :((((
jasne - to si uvedomuju...
jenom se mi nejak nedari nejak objektove zapouzdrit html tak, abych nepotreboval copy-paste.
tohle:
class xxxx {
function aa() {
echo "aaa";
OnAAA();
echo "bbb";
}
function OnAAA() {
}
}
proste nekdy nestaci. v prvnim potomkovi udelam OnAAA ale v dalsim potomkovi potrebuju vlozit zase nejakej kus kodu nekam mezi.... V C++ takovy problemy zdaleka nemam, vzdycky to nejak vymyslim, ze to nepotrebuju. To HTML je tezce neuchopitelny. Asi skoncim s vymyslenim objektove knihovny u pujdu do ASP.NET. Videli jste ukazku treba na www.gotdotnet.com??? V IE i treba v Mozille?? Stejny zdrojak jiny vystup, mix FORMu a JavaScriptu! Kdo neco podobnyho napise pro PHP? hledam dobrovolnika :) Jinak je PHP v pytli. v .NET se da udelat UDRZOVATELNA aplikace. S tim mam v PHP nekdy dost problemy..
V jednodušší podobě něco podobného umí modul ooh_forms z PHPLIB. Z definic formulářových polí umí sám vygenerovat validátor pro server i pro klienta (v JavaScriptu).
Přehlednost a udržovatelnost kódu nijak zvlášť nesouvisí s nástrojem, spíš s tím, jak je člověk na sebe přísný a jestli dovede konzistentně udržovat určitá jednotná pravidla.