|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
|
28. 02. 2013. | #1 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
|
PHP nije Java.
I otkad je Magento primjer dobrog codea? Je li želiš da budeš "Magento Expert" ili? Poslednja izmena od webarto : 28. 02. 2013. u 22:36. |
01. 03. 2013. | #2 |
profesionalac
Professional
Datum učlanjenja: 08.11.2010
Poruke: 211
Hvala: 68
78 "Hvala" u 32 poruka
|
Racunao sam da Magento core developeri ipak nesto znaju
Ne planiram da se bavim Magentom skorije, ali dosta ispitujem kakava je arhitektura ostalih open source resenja, ne bi li dobio inspiraciju i nesto upotrebio u svom sistemu/backendu. Cesto nailazim na ovaj slucaj, pa bih voleo da cujem nekoga ko tako radi da mi objasni sto? Jablane, mozes molimte biti malo precizniji, ti ne koristis apstraktne klase uopste ? |
02. 03. 2013. | #3 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Pa koristim kad radim u npr. Javi, ali ne koristim kad radim u one-who-must-not-be-named jeziku, jer u istom nemaju smisla. Jezik mi ne brani da pozovem metodu koja će biti implementirana u potklasama, a ako želim da zabranim instanciranje klase, baciću exception u konstruktoru.
__________________
blog Poslednja izmena od jablan : 02. 03. 2013. u 20:48. |
03. 03. 2013. | #4 |
novi klan
Professional
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
|
Jedno pet puta već čitam pokušavajući da shvatim tvoj argument, ali mi ne uspeva. Daj, molim te, objasni mi šta hoćeš da kažeš...
__________________
We professional we dealin' with business |
03. 03. 2013. | #5 | |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Citat:
Primer: Ti u PHP-u možeš da uradiš sledeće: Kôd:
class Duck{ function quack(){ echo "Quack\n";} function fly(){ echo "Flap, Flap\n";} } class Person{ function __construct($name){$this->name=$name;} function quack(){echo "{$this->name} walks in the forest and imitates ducks to draw them\n";} function fly(){ echo "{$this->name} takes an airplane\n";} } function QuackAndFly($obj){$obj->quack(); $obj->fly();} QuackAndFly(new Duck()); QuackAndFly(new Person("Jules Verne")); Dakle, interesuje me zašto je u PHP dodat feature koji je u statičkim jezicima tu samo kao nužno zlo, upravo zato što su statički? Nadam se da sam jasniji.
__________________
blog Poslednja izmena od jablan : 03. 03. 2013. u 17:52. |
|
03. 03. 2013. | #6 |
novi klan
Professional
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
|
Iskreno, nisam nikad na apstraktne klase gledao kao na mehanizam za puko zadovoljenje kompajlera u ovakvim slučajevima, već više kao na pogodnost koja omogućava da se konstrukt "implemetnts Interface, extends Base" svede na "extends AbstractBase".
A što se tiče tvog primera, ako se ne varam, ni u Javi ti ne treba apstraktna roditeljska klasa, tj. dovoljno je da ona postoji, ne mora da bude apstraktna, i to će da radi, i kompajler se neće buniti, sve dok obe klase koje je nasleđuju sadrže potrebne metode. A ako hoćeš da se zaštitiš od "zloupotreba" tipa prosleđivanje ovoj QuackAndFly() f-ji objekta koji nema neki od potrebnih metoda, e tu u jednačinu ubacuješ apstraktnu klasu, i tu onda nema veze da li je jezik statički ili dinamički, i za jedne i za druge važi isto - moraju da implementiraju sve metode...
__________________
We professional we dealin' with business |
03. 03. 2013. | #7 | |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Citat:
Što se tiče primera, u Javi je neophodno da 1) postoji roditeljska klasa, i 2) da roditeljska klasa ima navedena dva metoda. Keyword abstract ti omogućava da te metode ne moraš da implementiraš (pišući prazne brejsove ili dižući exception), po cenu da samu parent klasu ne možeš da instanciraš. PHP i drugi dinamički jezici već imaju tu pogodnost da 1) ne moraš da imaš parent klasu, a ako baš hoćeš da je imaš, 2) ne moraš da navodiš neimplementirane metode i 3) možeš da sprečiš njeno instanciranje na druge načine koji ne zahtevaju dodatno bloatovanje ionako već punačke sintakse.
__________________
blog |
|
04. 03. 2013. | #8 | |
profesionalac
Professional
|
Citat:
PHP kôd:
PHP kôd:
Webarto je krenuo u pravom smeru. PHP kôd:
|
|
|
|