Atpakaļ uz pirmo lapu

laacz » 2005 » 28. aprīlis

PHP tip

14:12 @ 2005-04-28 = 45 blabla  

Lai iegūtu kādu $_REQUEST variabli, neizmantojot katrā vajadzīgajā vietā daudz koda rindiņu, esmu ieviesis funkcijas, kuras regulāri lietoju: getgvar(), getpvar(), u.t.t.:

# Atgriež $_POST masīva vērtību kejam $key, 
# vai arī $default vērtību, ja tāda keja nav. Ja nav
# norādīta defaultā vērtība, kuru atgriezt, tad par tādu
# tiek uzskatīta false
function getpvar($key, $default = false) {
    return isset($_POST[$key]) ? $_POST[$key] : $default;
}

Tādas f–jas man ir visiem superglobālajiem masīviem — sesijām, kūkijiem, GET un POST. Parasti es zinu, ar ko tieši no minētajiem masīviem man dati tiek padoti. Un tad, teiksim, var rakstīt:

# Atgriezīs kaku, ja tā ir POST'ā

# + Atgriezīs false, ka 'kaka' nav POST'ā
$kaka = getpvar('kaka');
# + Atgriezīs 'defaultā kaka', ja 'kaka' nav POST'ā
$kaka = getpvar('kaka', 'defaultā kaka');

1 xrnt @ 14:45 (2005. gada 28. aprīlis)

Nu es domāju, kam domāšana strādā tie jau sen tādu izmanto :) Ja nē, tad tagad noteikti izmantos.

2 bubu @ 14:46 (2005. gada 28. aprīlis)

A var vēl krutāk, visiem masīviem vienu fju:
function getvar($key, $arr, , $default=false) {
return isset($arr[$key]) ? $arr[$key] : $default;
}

3 bubu @ 14:47 (2005. gada 28. aprīlis)

uff, komatu par daudz ielikās..

4 laacz @ 14:48 (2005. gada 28. aprīlis)

bubu: Dikti daudz jāraksta. Nekādi ne simple :)

5 BigUgga @ 15:15 (2005. gada 28. aprīlis)

man identiskas taadas f–jas saucas get() un post()

veel biki mazaak jaaraksta :)

6 JV @ 15:16 (2005. gada 28. aprīlis)

getpvar('test');
$_POST['test'];
Man domātiņās, ka tā nav nekāda ekonomija — iznāk par vienu simbolu vairāk rakstīt. Un ja nav atšķirības — kāpēc maksāt vairāk?
Pat tad, ja to funkciju nosauc īsāk, nekāda īsta ieguvuma nav, bet tas sarežģī koda lasīšanu. Iespējams to var uzlabot, ja tajā funkcijā pieliek klāt arī dažādu mainīgo validēšanas darbības, tad šāda funkcija savu eksistenci attaisno.

7 M @ 15:16 (2005. gada 28. aprīlis)

Piekrītu bubu piemērs ir unversālāks

8 laacz @ 15:19 (2005. gada 28. aprīlis)

JV: Nunu. A ja mums $_POST['test'] nav iesetots? E_NOTICE parādās :) Un ar neinicializētajiem mainīgajiem darboties nav korekti.

9 JV @ 15:29 (2005. gada 28. aprīlis)

Piekrītu. Tāpēc arī minēju, ka tur varētu pievienot validēšanas darbības, lai ieguvumu no šīs funkcijas padarītu acīmredzamāku. Validēšana būtu vajadzīga vienmēr. Funkcija getpvar($var, $validate_option = 'string', $length = 100) vai līdzīga būtu labāka, manā uztverē.
P.S. Vai tad gatavos un reālos projektos Tu liec error_log–ā arī E_NOTICE, nav tā kā bišku par traku?

10 laacz @ 15:34 (2005. gada 28. aprīlis)

JV: es vispār mēģinu taisīt projektus, kuros neparādās arī E_NOTICE:) Bet par validāciju — man vienmēr ir šķitis obscure šāds validācijas veids. IMHO dotajā brīdī primārais ir datu savākšana. T.i. — ja cilvēks ir iedevis mums $_POST['kaka'], tad mums $kaka = $_POST['kaka']. Un validācija jau ir pēc lietotāja sniegto datu iegūšanas. To var taisīt kā vien vēlies. Kaut savu function validate($var, $type, …). Validācija ir dikti nekonkrēts process, līdz ar ko unificēt kādu vienu f–ju šīm vajadzībām ir absurdi. IMHO.

11 JV @ 15:43 (2005. gada 28. aprīlis)

Nu tas ir kā kurā gadījumā. Es to vairāk biju domājis savā situācijā — kur ir apmēram 5–6 dažādi mainīgo tipi, kas ir pieņemami — viss pārējais — mēslainē. Tāpēc šāda funkcija ir lietderīga — ja vajaga pamainīt kādu definīciju vai pielikt jaunu tipu — frameworks ir gatavs un atrodas vienā vietā un sadarbojas ar pārējo skriptu daļu ar vienkāršiem tīriem interfeisiem. :)
Piekrītu, ka valadīcija ir nekonkrēta, bet katrā konkrētā projetā ir parastie datu formāti un plus vēl kaut kādi viņiem raksturīgi (nu tur artikuli, preču grupu numuri, rakstu nosaukumi utt.). Bet _parasti_ tie ir daži un šādas validācijas funkcijas uzrakstīšana palīdz.

12 gk @ 15:48 (2005. gada 28. aprīlis)

un kādas funkcijas lieto tipu validācijai?
piemēram kaut kas līdzigs šim:
http://paste.php.lv/1893

13 Kāds @ 16:18 (2005. gada 28. aprīlis)

Bikuc esat pārsaspiedušies. Galīgi liekas darbības tur, kur tās nav vajadzīgas .. Un, nē, manis kodētajās aplikācijās neparādās E_NOTICE un tml. kaka.

14 Sm @ 18:10 (2005. gada 28. aprīlis)

PHP PIT

15 PheliX @ 18:13 (2005. gada 28. aprīlis)

nevajag salīdzināt $_POST[$key] ar getpvar($key) bet gan ar isset($_POST[$key])?$_POST[$key]:$default;
Pienāk brīdis, kad apnīk to penteri visur drukāt un tās dažas liekās php darbības vairs neliekas tik būtiskas :)

16 Mr.Venom @ 18:52 (2005. gada 28. aprīlis)

Es cienu savu slinkumu, tāpēc man viss saucās attiecīgi p,g,un s.
Bet kā return man tomēr iet '', nevis false. Un arī "default" es nelieku, bet gan apstrādes veidu, piem
echo '<input name="nick" value="'.p('nick',1).'" />';
vadīs vai nu '' ja !isset, vai vērtību, kura būs no–htmlspecialchars–ota

17 + @ 19:48 (2005. gada 28. aprīlis)

Es cienu savu slinkumu vēl vairāk, tāpēc neprogrammēju PHP vispēr :)

18 [cx] @ 20:01 (2005. gada 28. aprīlis)

heh :]
nu man ar ir P G S :]

19 hmnc @ 20:43 (2005. gada 28. aprīlis)

nu šādu funkciju izmantoju jau kādu gadu. lietoju gan stipri pielāgotāku un vieglāk izmantojamu utt. :)

20 kewl @ 20:57 (2005. gada 28. aprīlis)

aha, un visas tās P, p, G, g funkcijas padara kodu tikpat lasāmu, cik mainīgie ar vārdiem $x1, $x2, $x3, .., $xn, $data un visa cita klasika.

21 hmnc @ 00:16 (2005. gada 29. aprīlis)

kewl — ja tev globals = on; tad uz priekšu ;)

22 Kāds @ 11:34 (2005. gada 29. aprīlis)

Lame, lame, lame :( .. bet nu ok, katrs kodē tā, kā viņam patīk labāk. Un baidos, ka katru no šiem kodētājiem ij nepārliecināt par to, kas ir tā īstā labā prakse ..

23 Kirils @ 12:46 (2005. gada 29. aprīlis)

tas, ka cilveeks raksta kodu, kas iet uz globals=on, nenoziimee, ka kodaa ir caurumi. vajag tikai maaceet savu kodu.

24 shizo @ 13:21 (2005. gada 29. aprīlis)

Tomeer laikam esmu aprobezhots, un patiik gramstiities gar tiiriem mainiigajiem. Pateikt godiigi? tas izklausaas peec "kaku bakstiit ar salminju". Savs vidoklis navarochinajos kodu panjeemienos.. sorii

25 DeeWee @ 14:26 (2005. gada 29. aprīlis)

Paldies laacz'am par TIP'u ;)

26 Kāds @ 15:22 (2005. gada 29. aprīlis)

Hmm .. beidzot Kirilam arī var piekrist. Ja kodētājs ir ar pieredzi (pat nevajag pieredzi, tikai vēlmi kodēt korekti, testējot kodu ar E_NOTICE un rakstot to tā, lai tie E_NOTICE nerādās), tad pat pie register_globals nekas nevar noiet greizi. (tiem, kas vēlas oponēt, skaidroju — E_NOTICE parasti aizrāda par neinicializētajiem variābļiem. Respektīvi, pat ja kāds mēģinās iebarot ko lieku caur GET vai POST, Tu to overraidosi, jo inicializēsi, anyway, to variābli. Piemēram, uzrakstot $x = 0; vai arī $people = array();

27 laacz @ 15:27 (2005. gada 29. aprīlis)

Kāds, Kirils: Jāņem vērā fakts, ka register_globals defaultajā PHP instalācijā (un tas ir pareizi, jo ne visi kodējot spēj pasargāt savus skriptus no ievainojamībām) ir izslēgts.

28 japets @ 15:38 (2005. gada 29. aprīlis)

piekriitu shizo..

29 DeeWee @ 16:33 (2005. gada 29. aprīlis)

Baac nu ku visi kruti koderrriii :)
Es no savas pieredzes saku, ka nepieshamiiba peec shaadaam ( laacz ieteiktajaam ) f–jaam vienaa noteiktaa briidii tomeer rodas. Ja Jums shaada nepiecieshamiiba nerodas, tad tas vareetu noziimeet : 1)Juusu koda gabali veel nav tik "lieli" (sarezgjiiiti utt); 2)Jums jau ir shaada f–jas realizeetas nedaudz savaadaak/liidziigi; 3)Man ir liidziigs domaashanas virziens ar laacz, un Jums nav; 4)Juusu kodaa netiek izmantoti POST GET variablji :P

P.S. Nu paklausiet tak kaadreiz arii tos pieredzeejushaakos, nevajag viemeer ar savu laapstu … ar savu laapstu.

30 bubu @ 16:51 (2005. gada 29. aprīlis)

Nu tu gan dod DeeWee, a kāpēc savu pieredzi nevar veidot no savām kļūdām un savas izpratnes? Vai tad vienmēr tikai jāklausa kāds cits un jādara tāpat kā citi tikai tāpēc, ka vot viņš ir redz kruts koderis?

31 z @ 18:22 (2005. gada 29. aprīlis)

man jau reāli patīk kā šāds vienas rindiņas fragments tiek diskutēts kā lielākais 2k5 meistarības uzkodējums php!

32 z @ 18:23 (2005. gada 29. aprīlis)

Un Kirils ir pats gudr&#257;kais, cepuri nost.

33 nz @ 18:35 (2005. gada 29. aprīlis)

stulbs posts

34 nobody->bubu @ 19:24 (2005. gada 29. aprīlis)

Varbūt tieši tāpēc, ka ir bezjēdzīgi izgudrot jaunu velesipēdu, tb taupi savu laiku un nekāp uz visiem grābekļiem pēc kārtas. Ir savs punkts uzklausīt cilvēkus, kas kodē jau ilgāku laika posmu un realizējuši sarežģītas sistēmas!

35 Kāds @ 19:52 (2005. gada 29. aprīlis)

DeeWee, Laacz: Ticu, ka manis radītie projekti ir daudz apjomīgāki par Jūsu radītajiem. (piedodiet gan par nelielo iedomīgas piegaršu manis teiktajam) Anyway, pēc tik jocīgām funkcijām (gribās gan teikt metodēm, jo esmu radis kodēt "OOP stilā", tomēr) man vajadzības nav. Varbūt tikai pa retam pēc kaut kā nedaudz elītāka .. un savādāka.

Anyway, žetons Laacz'im par to, ka uzrakstīja kādu PHP tip'u. Varbūt arī nekas īpašs, bet .. atzīšos, jau ilgu laiku gaidu, kad mūsu letiņu bloggeri sāks ņemties ap un ar visādiem PHP tip`iem u.c. padarīšanām. Tā tik turēt!

36 z @ 20:23 (2005. gada 29. aprīlis)

Kāds, laikam esi par ilgu nodzīvojis padomju savienībā.

37 BigUgga @ 20:51 (2005. gada 29. aprīlis)

Kāds, ja reiz esi tik liels specs, kāpēc kaut ko gaidi? Kāpēc pats neraksti jeb `neblogo`?

38 Kāds @ 00:00 (2005. gada 30. aprīlis)

BigUgga: neuzskatu, ka nedz es, nedz citi man zināmie (t.sk. arī virtuāli) PHP koderi ir tik gudri, lai mācītu citus … Varbūt pēc gadiem 5–10 arī sākšu blogoties. :)

39 CooLynX @ 01:25 (2005. gada 01. maijs)

Kāds: Mācot citus tu beigu beigās iemācies pats to, ko tu domāji, ka tu jau zini…

40 Kāds @ 14:02 (2005. gada 02. maijs)

Nav manā stilā tēlot pārgudrinieku un mācīt citus, kā dažs labs to dara ..

41 CooLynX @ 14:27 (2005. gada 02. maijs)

Kāds: Tas, ka laacz kaut ko kādam "māca" nav nekas nosodāms. Tā kā tava uzpūtība ir nevietā.

42 ulzha @ 15:18 (2005. gada 02. maijs)

Piesienamies Mr.Venom pamācībai. Kāda nekonsekvences velna pēc tev kā return iet ''? Un kāds prieks no p(), kurš no–htmlspecialchars–o, datu apstrādes līmenī?

43 cu @ 00:03 (2005. gada 03. maijs)

man nekā piebilstama nav, bet dikti gribējās arī kaut ko pateikt.

44 UGGG @ 13:01 (2005. gada 03. maijs)

NNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOORRRRRRRRRRRRRRMMMMMMMMMMMMMMMMMMMMMMĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀALLLLLLLLLLLLLLIIIIIIIIIIIIIII

45 smarty @ 14:34 (2005. gada 03. maijs)

un ja taa post veertiiba ir massiivs?

Kā tu saucies:
Tava e-pasta adresīte:
(nevienam netiks rādīta, vai dota; pat pie komentāra ne)
Ko teiksi?
FYI
* Formatēšana: iekļaujot tekstu no abām pusēm iekā '//', tas iznāks kursīvā: //teksts// (teksts), bet treknu tekstu var dabūt ar '**' katrā pusē: **teksts** (teksts), savukārt pasvītrotu ar '__': __teksts__ (teksts).
* Enteri tiek automātiski pārtaisīti par enteriem. Jebkurš HTML (izņemot <BR.*>) tiek parādīts, kā ievadīts (ne HTML'iski)
* E-pastu var vadīt droši iekšā, ja ir bailes no spambotiem. Tas tiek aizsargāts no jamajiem.
* Jebkurš url'is (www.kaka.com, http://kaka.com/, …) tiek automātiski pārtaisīts par spiežamu prieku (www.kaka.com, http://kaka.com/, …)
* Ko nozīmē 'detransliterēšana'? Manuprāt sen jau ir laiks sākt rakstīt nevis translitā (aaboljiishi), bet gan normāliem letiņu burtiem (āboļīši). Tad nu tieši to arī dara attiecīgā poga - pārveido tekstu no translita uz parastu. Gadās kļūmītes, bet labāk šitā nekā nekā.
 

Valid CSS! Valid XHTML 1.0 Transitional! Valid RSS! Valid Atom!
Tātad tā. Kopīraita notice. Viss materiāls, kas atrodams šajā saitā nedrīkst tikt izplatīts, kopēts, jebkādi citādi reproducēts vai izmantots bez manas (laacz) rakstiskas atļaujas. šīs tiesības man laipni piedāvā Autortiesību Likums.
Jebkura informācija, kuru kāds labprātīgi publicē šajā saitā (piemēram, komentāri), pieder tās autoram. Taču, ievietojot infromāciju šajā saitā, tās autors sniedz saita īpašniekam tiesības to daļēji vai pilnā apjomā lietot, izplatīt, reproducēt, modificēt, adaptēt, publicēt, tulkot, publiski demonstrēt. Saita īpašnieks ir tiesīgs jebkuru komentāru jebkurā brīdī dzēst, vai modificēt.
© 1996 — 2025 laacz. Visas tiesības… nu jūs jau zināt, kur.
Spēcināts ar SPP (S Pivom Potjaņet) v2.0b (code name Marasmus)
Hostingu laipni piedāvā DEAC.

laacz blog activity

Top.LV

 

Lapa izlīdusi no servera dzīlēm 0.03215 sekundē(s)