Category Archives: Programavimas

Du trumpi PHP patarimai

Nors su PHP dirbu jau kelis metus, bet vis atsiranda, kažkokių stebūklingų būdų kaip atlikti vieną ar kitą veiksmą. Pradėsiu vienu, neseniai atrastu patarimu, kaip skaičių paversti neigiamu, paprastai darydavau taip:

//..
$negative_var = $var * -1;
//..

Pasirodo, taip darydavau ne vien aš, bet ir visi mano kolegos, o vieną kartą atvertęs PHP dokumentaciją atradau trumpesnį būdą šitam veiksmui atlikti:

//..
$negative_var = -$var;
//..

Kitas patarimas susijęs su trumpaisiais sąlygos sakiniais, tarkim priklausomai nuo kintamojojo reikšmės norime išvesti eilutę arba nieko nedaryti, tai darydavom taip:

//..
echo $var ? '$var is true' : '';
//..

Pasirodo yra kitas būdas tai atlikti:

//..
$var and print('$var is true');
//..

Noriu pastebėti, kad ‘echo’ po ‘and’ nebeveiks, be to jeigu naudojate > PHP 5.3.x versiją galite naudoti dar patogesnį sutrumpinimą:

//..
echo !$var ?: '$var is true';
//..

Tiek šiam kartui patarimų, jei turit kokių nors pastabų, ar dar kažkokių įdomesnių metodų PHP kalboje, pasidalinkite komentaruose :)

Zend Framework klasių įkrovimo optimizavimas

Šiuo įrašu, noriu tik pranešti, kad mano angliškame tinklaraštyje, atsirado naujas įrašas apie klasių įkrovimą Zend Framework aplikacijoje. Jei programuojate būtent su Zend Framework, manau tai jusm turėtų būti įdomu. Taigi įrašas Faster class loading in Zend Framework application.

Ir dar kartelį pasikartosiu, jog anglų gramatika (na gerai, ne vien anglų :) ) man sekas nekaip, todėl jei pastebėsit klaidelių praneškit.

Kaip pridėti papildomus tarpus kuriant Option elements su JavaScript

Šiandien susidūriau su tokia problemėle, kad kuriant naujus Option elementus su JavaScript niekaip nepavyko pridėti papildomų tarpų prie pavadinimo. Tiek paprasti tarpai, tiek   specialūs HTML simboliai nepadėjo, teko prašyti seno gero draugo Google pagalbos. Po keletos, intensyvaus ieškojimo, minučių suradau sprendimą, simbilius keisti į specialius Unicode simboliukus. pateikiu trumpą pavyzdį:

$.each(vals, function(i, val){
catSelector.append(new Option(val.title.replace(/ /g,"\u00A0"), val.id));
});

Taigi tikiuos, jei kam nors kils panaši situacija, šis mini įrašas jums pagelbės.

PHP skripto vykdymo laikas ir dar viena gudrybė

Kartais tikrai naudinga matyti per kiek laiko PHP sugeneruoja puslapį ar tam tikras jo dalis. Internete rasite tikrai nemažai pavyzdžių kaip tai atlikti, kad ir šiandieninis SkaitykIT.lt įrašas “Kaip su PHP greitai pamatuoti skripto vykdymo laiką“, išties detalus straipsniukas, dėja pasigedau komentavimo tame straipsnyje, nes norėjau pasidalinti dar viena gudrybe, kurią atradau visai neseniai ir manau pravers daugeliui.
Read more »

Saugesnis būdas pridėti naują lauką MySQL lentelėje

Šiandien savo Google Reader RSS sraute atradau įdomų straipsniuką, kaip saugiau pridėti naują lauką MySQL duomenų bazės lentelėje. Pačiam praktikoje, dar jo neteko pritaikyti, bet manau šis būdas, būtinai bus išbandytas, nes standartinis ALTER TABLE gali pridaryti ir problemų.

Dar kartą straipsnio nuoroda: http://www.rndblog.com/don’t-alter-table-do-copy-and-rename/

Įdomi Firefox klaida vykdant regex.test()

Nepersianiausiai teko susidurti su gan įdomia klaida Firefox naršyklėje vykdant JavaScript’e reguliarų išsireiškimą (vertimą pasiskolinau iš UAB Fromris) su modifikatorium g.

Tarkim jei jūs turit kokią nors išraišką kuriai reikalingas modifikatorius g, jums ši išraiška suveiks tik kas antrą kartą, tad jei susidursite su tokia, gan keista problema, turėkite tai omenyje. Ši klaida pasitaikė tik Firefox naršyklėje, nors internete toko rasti, kad tas pats buvo ir Chrome naršyklėje, bet dėl greito tobulinimo, greičiausiai ji seniausiai ištaisyta.

Kaip pakeisti formos atributą action?…

Šis įrašas tikriausiai bus paskutinis šiais metais, ir džiaugiuos, kad jis galbūt bus naudingas ir kitiems, o gal kas nors parodys paprastesnį sprendimą man iškilusiai problemai.
Taigi taip susiklostė, kad prisireikė dinamiškai keisti formos atributą “action”, viskas atrodytų labai paprasta, vos pora JavaScript eilučių…
$("#my-form").attr('action', 'http://www.my-super-duper.com/post-url');
… ir problemos nebėra, tačiau mano atvėju tai negelbėjo, nes mano formoje buvo paslėptas input elementas, kurio pavadinimas buvo “action”, o mielas programuotojų draugas Internet Explorer 7 jį pamatęs tokioje situacijoje ima ir pasimeta, ir nebežino ką daryti. Paprasčiausias būdas tikriausiai atsisakyti paslėpto elemento vardu “action”, tiesiog kartais tai padaryti neleidžia aplinkybės (trečios šalies kodas ir pan.), tad tenka sugudrauti…

//...
var form = $('#my-form');
form.children('input[name=action]').remove();
form.attr('action', 'http://www.my-super-duper.com/post-url');
from.append($('<input type="hidden" name="action" value="1" />'));
//...

Gudrybė paprasta, iš formos pašalinam elementą vardu “action”, pakeičiam formos atributo “action” reikšmę ir formoje sukuriame naują elementą vardu “action” ir taip paprastai apgauname IE7. Dar šiokia tokia pastabėlė, bent jau man, prieš darant pakeitimus atribute, jis turėjo būti užpildytas, t.y. negali būti tuščias.

Tikiuos bent jau ateityje padėsiu kam nors sutaupyti bent keleta minučių :)

Su praėjusiom šventėm ir laimingų Naujųjų metų :)

PHPUnit paruoštukas

Jei programuojate PHP didelias sistemas, tikriausiai neapseinate be automatinių testų, kurie taupo laiką ir sumažina klaidų galimybę. Populiariausias įrankis šiuo metu yra PHPUnit. Dzone portalas išleido šiam įrankiui paruoštuką, siekiant programuotojams padėti greičiau rašyti testus.

Read more »

Darbas pagal Pomodoro

Apie Pomodoro darbo metodiką žinojau, jau gal kokius metus, bet prisiruošiau ją išbandyti tik šiuo metu, ir tai tik perskaitęs porą straipsnių (How to set up the Pomodoro Technique in your office ir Why a Pomodoro helps you getting in the zone) kurie man apie šią metodiką ir priminė. Read more »

Savaitės skaitiniai #2

Atrodo entuziazmas niekur nedingo, tai pasistengsiu išlaikyti šią rašinių seriją, kur pateiksiu įdomesnius skaitinius apie web programavimą PHP kalba. Read more »