|
20. 01. 2010. | #1 |
Ivan Dilber
Sir Write-a-Lot
|
type hinting in php 5.3
nemam 5.3 pri ruci da probam, jel dodat na kraju type hinting u funkcijama i za integer, string, boolean i sl. tipove?
Citam ovde nesto o tome kako je to bilo predlozeno da radi, i moram priznati da mi se ne dopada uopste... naravno, bolje bar neki type hinting, nego nikakav, ali mi se cini kao da ovakvo resenje nema mnogo veze sa filozofijom php-a. Po ovom predlogu ako je f-ja definisana kao PHP kôd:
Zapravo ako bi to tako uradili mislim da bi to bila jedna od najgenijalnijih izmena u PHP-u u poslednje vreme, jer bi ustedela gomilu provera, samo definises da u funkciji ocekujes nesto sto je validan integer, i ne moras da brines o tome vise, ni u samoj funkciji, ni kod pozivanja. Plus mnogo je brze da to proverava kompajler nego da se rucno pisu te provere. Sta vi mislite?
__________________
Leadership is the art of getting people to want to do what you know must be done. |
20. 01. 2010. | #2 |
profesionalac
Qualified
|
Mislim da se striktnim definisanjem moze doci i do odredjenog nivoa sigurnijeg koda.
Ionako mnogi vrse proveru prilikom primanja parametara. Ukoliko od $_POST ocekujes celi broj onda ces ga i provuci kroz int()... a opet to sve u vecini slucajeva treba provuci kroz bazu. Ukoliko radis sa postgresom tek onda dolazi do problema. Odgovarala bi mi i definicija tipova podataka u samim definicijama clanova klase. Tako ne bih morao da upisujem pomocne komentare koji je tip podataka. |
"Hvala" agvozden za poruku: |
20. 01. 2010. | #3 |
Ivan Dilber
Sir Write-a-Lot
|
da, o tome sam i ja razmisljao, a to bi omogucilo i IDE da proverava varijable i odmah upozorava na probleme...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
20. 01. 2010. | #4 |
Milan Cvejic
Wrote a book
|
Zbog cega je problem sa postgresom?
__________________
http://weevify.com |
20. 01. 2010. | #5 |
Goran Pilipović
Sir Write-a-Lot
|
Pazi nije samo to, fora je sto ako imas type hinting ovako:
PHP kôd:
PHP kôd:
Ne radi čak ni ovo: PHP kôd:
PHP kôd:
PHP kôd:
E sad ... ovo za string, int ... uopšte mi nije jasno zašto je to tako.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
06. 02. 2010. | #6 |
novi član
Na probnom radu
Datum učlanjenja: 28.12.2009
Lokacija: Zagreb
Poruke: 17
Hvala: 0
0 "Hvala" u 0 poruka
|
|
22. 01. 2010. | #7 |
član
Certified
|
Nisam siguran al mislim da se od 5.1 verzije nista nije menjalo po tom pitanju sto znaci da string i integer ne rade jer nisu jos podrzani...
|
22. 01. 2010. | #8 |
Ivan Dilber
Sir Write-a-Lot
|
@blues: To znaci da nisu jos dodali ovaj patch koji je predlagan, ima gore link u mom prvom postu sa opisom kako je to bilo zamisljeno da se implementira za int i string. Iskreno mozda je i bolje sto nisu menjali, posto mi se taj doticni predlog i ne svidja narocito.
__________________
Leadership is the art of getting people to want to do what you know must be done. |
23. 01. 2010. | #9 |
Goran Pilipović
Sir Write-a-Lot
|
Ne vidim ja nešto posebno sporno sa ovim predlogom. To će smanjiti i one klasične greške pri validaciji input-a. Tačno je da je većina stvari iz request, pa samim tim i string, zato dobar kod uvek ima validaciju tipa podataka pre nego što ga koristi, oviakvim predlogom može da se smanji i svaka funkcija za po red-dva. Ako ja moram na početku svake funkcije:
PHP kôd:
PHP kôd:
PHP kôd:
Meni je veći problem ovo kako je sada implementirano, ni na nebu ni na zemlji.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
23. 01. 2010. | #10 |
Ivan Dilber
Sir Write-a-Lot
|
fora je sto ne mozes da preskocis, i dalje bi morao da uradis intval($id) pre nego sto ga prosledis f-ji, jer bi ti inace bacila gresku. Ne kazem da je to lose, ali bilo bi bolje da uopste ne moras da konvertujes nesto u int, a da opet imas automatsku proveru da je vrednost ocekivanog tipa
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Time data type - Oracle | Bozha | SQL baze podataka - Sponzor: Baze-Podataka.net | 4 | 18. 04. 2009. 10:39 |
input type=file i njegov value | japan | PHP | 6 | 30. 05. 2008. 19:43 |
Type and hit Send | Ilija Studen | Web design, Layout, User Interface | 24 | 19. 07. 2007. 17:27 |
type 1 font iz css-a | japan | (X)HTML, JavaScript, DHTML, XML, CSS | 4 | 08. 03. 2007. 09:03 |