Arhiva pentru tagul “PHP”

HybridAuth: bibliotecă PHP pentru autentificări

Ne-am obişnuit astăzi pe multe situri să nu ne mai creăm conturi ci să folosim conturile pe care le avem deja, fie pe Google, Facebook sau Twitter (şi evident lista este mai lungă). Şi pentru programatori poate fi mai simplu cu astfel de autentificări, care deja presupun – minim – că emailul este valid. O soluţie pentru cei ce scriu în PHP este HybridAuth, şi voi recunoaşte din start că nu am folosit-o pentru moment, deci este doar o semnalare, nu împărtăşirea unei experienţe personale.

imagine

Biblioteca PHP permite identificarea pe o mulţime de situri sociale: la descărcare veţi vedea un pachet cu cele mai folosite reţele sociale (OpenID, Facebook, Twitter, LinkedIn, MySpace, Google, Yahoo Foursquare, AOL,  Windows Live), iar o variantă secundă …


Un top pentru programatorii în PHP

Nu doar programatorilor nu le place să inventeze roata. Tocmai de aceea sunt apreciate framework-uri precum jQuery când vorbim de JavaScript, dar şi CodeIgniter când vorbim de PHP. Desigur, opţiunile sunt mai multe şi „pisica ce scrie cod” tocmai a publicat o selecţie intitulat Top 10 PHP frameworks for 2014. Ordinea, ne spune autorul, nu are neapărat relevanţă. Personal nu am folosit până acum un framework PHP, cel mai adesea scriind în PHP sub WordPress, care are „cadrul” său. Desigur, am şi proiecte PHP non-WordPress, non-CMS, şi probabil nu este proiect prea mic pentru a folosi un framework.

imagine

Evident, framework-ul depinde de proiect. Unele, pentru proiecte foarte mici şi simple, nu se justifică. Dar, ca să dau şi un exemplu concret, mie …


Verificarea încărcării serverului (şi din WordPress)

După ce ai stat pe un VPS cu ochii aţintiţi pe valorile de încărcare ale serverului (valorile medii, sau mai clar Server Loar Averages), atunci când treci pe mediul partajat (shared) parcă ai vrea să ştii cum stau lucrurile. Ţi se pare că situl îţi merge mai încet şi te întrebi de ce. Cel mai adesea e o problemă de (supra)încărcare. M-am bucurat să văd că există un plugin pentru WordPress intitulat WordPress Server Load care nu face decât un singur lucru: în panoul de control (dashboard) pune un widget ca cel de mai jos cu informaţiile de bază.

imagine

M-a mâncat curiozitatea să văd cum le obţine şi m-am uitat în sursa pluginului. Practic sunt două-trei linii de cod. …


Trimiterea unui email cu Mandrill

Pentru a folosi Mandrill (vedeţi articolul anterior despre MailChimp şi Mandrill) trebuie desigur să aveţi un cont. Depăşim această etapă. Aveţi deci contul, v-aţi logat, e timpul să trecem la treabă. Şi vom merge în meniu la Outbound, apoi Compose Message, doar de dragul distracţiei, pentru că nu cred că v-aţi dorit să folosiţi Mandrill pentru a scrie emailuri unul câte unul. Apropo: Mandrill poate fi folosit cu clienţi desktop de emailuri – detalii aici. Revenind, opţiunea de a compune un mesaj e mai mult de dragul testelor. Desigur, vom folosi Mandrill programând expediţiile.

imagine

Pentru aceasta ne uităm la API-ul oferit. Mai exact, dacă vreţi să vedeţi cum să trimiteţi un email, mergeţi …


7 funcţii PHP super-utile pentru începători

Cam aşa ar suna traducerea titlului articolului Quick Tip: 7 Super-Handy PHP Functions for Beginners, apărut acum câteva zile pe Net.TutsPlus.com. Personal nu mă consider începător, dat fiind că folosesc PHP de mulţi, mulţi ani (primul contact l-am avut înainte de anul 2000, buchisind o carte foarte groasă în limba engleză), şi totuşi am aflat de unde lucruri (aproape) pentru prima dată. Spun “aproape” pentru că de unele cred că am auzit dar nu le-am folosit.

imagine

Şi nu, nu am să le iau pe toate 7. De exemplu despre array_rand, strip_tags sau isset e cam greu să nu fi auzit. Am pus linkurile spre documentaţie pentru cei care totuşi nu au auzit. Apoi …


ImageWorkshop: operaţii pe imagini via PHP

Vă amintiţi articolul PHP şi lucrul pe imagini de acum patru ani? Cei mai mulţi sunt sigur că nu. Ei bine, dacă acolo am văzut folosirea bibliotecii GD (trebuie verificat dacă e activă pe serverul unde rulaţi PHP… şanse mari să fie), acum vom folosi o clasă PHP ce uşurează mult lucrul (se bazează de asemenea pe GD). Se numeşte ImageWorkshop şi documentaţia o găsiţi aici. Aşa după cum se subliniază şi în subtitlul vizibil în captura de mai jos, ImageWorkshop ne permite să lucrăm pe straturi: avem imaginea iniţială şi ei îi putem adăuga straturi după nevoi.

imagine

Poate vă întrebaţi cui îi poate folosi aşa ceva? Aplicaţii sunt multe. Să zicem un sit ce …


S/2: 20, 20, 20…

Acum mulţi ani aveam un fel de serie specială numită “S/2” sau “scurt pe doi”, în care trânteam nişte linkuri pentru a nu le îngropa definitiv. Asta pentru că găsesc multe subiecte interesante, dar nu pe toate ajung să le dezvolt aici pe CNet.ro şi atunci merită să fie cumva notate pentru cei care rezonează la subiect şi vor dori să le vadă singuri. Aşa stând lucrurile, iată după atâţia ani iarăşi un “S/2” unde pun câteva articole care cred că merită să le vedeţi. Şi am să încep cu 20 Blogs Offering Web Design Freebies, o colecţie deosebit de utilă pentru webmasteri/webdesigneri.

imagine

Am aflat de acolo despre o grămadă de situri foarte interesante, ce colecţionează “gratuităţi” de la …


PHP: copierea şi ştergerea directoarelor

În timp ce PHP oferă diverse funcţii în mod nativ pentru a frunzări directoarele, pentru a lucra pe fişiere, îi lipsesc două funcţii de care totuşi mulţi pot avea nevoie: copierea unui întreg director, respectiv ştergerea lui. Evident, există diverse soluţii, diverse funcţii care se găsesc pe net, iar eu folosesc două anume, pe care m-am gândit să le pun aici, pentru că sunt verificate şi poate vor prinde bine cuiva, cândva.

Dat fiind că le folosesc de ceva timp, nu mai sunt sigur de sursa lor, dar căutând pe Google s-ar putea ca pentru primul sursa să fie aceasta, iar pentru al doilea aceasta.

function copy_directory($source,$destination){
if(is_dir($source)){
@mkdir($destination);
$directory=dir($source);
while(FALSE!==($readdirectory = $directory->read())){
if ($readdirectory==’.’ || $readdirectory==’..’){
continue;
}
$PathDir = $source.’/’.$readdirectory;
if(is_dir($PathDir)){
copy_directory($PathDir,$destination.’/’.$readdirectory);
continue;
}
copy($PathDir,$destination.’/’.$readdirectory);
}
$directory->close();
}else {
copy($source,$destination);
}
}

function recursive_remove_directory($directory, $empty=FALSE){
if(substr($directory,-1)==’/’){
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)){


Crearea de arhive zip cu PHP

Am avut nevoie recent de o cale de a oferi într-o webaplicaţie posibilitatea de a lua mai multe fişiere nu individual ci la pachet, într-o arhivă. Mă aşteptam că va fi dificil, dar am dat de articolul Create a Zip File Using PHP, semnat de David Walsh (un tip extraordinar ce merită urmărit, căci înveţi multe). Desigur, soluţia depinde de configurarea PHP-ului pe serverul unde ar urma să ruleze aplicaţia, dar în cazul meu pachetul pentru zip era inclus, deci nu am avut probleme.

Puteţi vedea articolul original, sau direct codul de mai jos în care tot ce am făcut a fost să îl „românizez”, prin adaptarea numelor de variabile şi funcţii, precum şi prin traducerea comentariilor. Astfel codul ar trebui să fie uşor de citit. După ce vă asiguraţi că merge puteţi desigur scăpa de comentarii (precum şi de acoladele excesive).

/* creeaza o arhiva zip */
function arhivaZip($fisiere = …


Ce aduce nou PHP 5.4

Cu gândul la PHP 6.0, echipa dezvoltatoare a luat decizia să rescrie complet limbajul de programare, folosind Unicode în loc de ASCII. Desigur, toţi cei ce folosesc caractere “personalizate” (adică dincolo de alfabetul latin) se bucură de această iniţiativă, dar se pare că atunci când această variantă a fost pusă la lucru timpul de execuţie a crescut semnificativ (detalii tehnice aici). Cine ar dori PHP 6 mai lent decât PHP 5? Şi uite aşa, lucrul la versiunea 6 cumva stagnează (ce e în plan vedeţi aici), dar avem de la începutul acestei luni versiunea 5.4.

imagine

Anunţul oficial, după cum spuneam, are data de 1 martie 2012. Informaţiile oficiale despre această versiune se găsesc aici. Citez …