-
A mai trecut un an iar PHP 6 nu va veni.
De 2 ani astept PHP 6, cred ca a devenit mai mult un blog traditional cu care sa inchei anul.
PHP 6 nu va mai veni pentru ca trunk-ul a fost abandonat si refacut dintr-unul de 5.3.
In alta ordine de idei PHP 5.3 castiga popularitate. Frameworkuri precum Zend Framework si Symfony pregatesc pentru anul 2011 cate o versiune in 2.0 care va avea nevoie de PHP 5.3+. Chiar si CodeIgniter, un framework traditional PHP 4, va necesita o data cu versiunea 2.0 minim PHP 5.1.6.
Mai mult, certificarea oficiala Zend pentru PHP este mai nou ZCE 5.3, iar aceasta devine destul de populara, chiar daca a fost lansata doar cu cateva luni in urma.
Dar un nou an se incheie si este timpul sa bifam realizariile din rezolutia de anul trecut si sa o scriem pe urmatoarea.
Anul trecut am terminat masterul, cu asta am incheiat mult prea multi ani de scoala decat imi doresc sa calculez. De fapt aceasta este prima iarna cand nu sunt intr-o forma de invatamant, poate de asta mi se pare ca am ceva mai mult timp liber :).
Am schimbat locul de munca, iar cu asta am fost fortat sa folosesc cateva lucruri care erau pe lista de TODO de ceva vreme:
- Linux
- Symfony Framework Linux era un subiect in jurul caruia ma invart inevitabi de destul de multi ani, fara sa-l aprofundez de loc. A fost mereu pe lista mea de “todo”, dar niciodata nu am avut atata rabdare ca sa intru in detalii cu el sau nu am avut continuitate atunci cand am facut-o. Cand am ajuns la noul loc de munca m-am trezit in fata unui calculator cu Ubuntu si un pic de panica m-a cuprins.
Dupa cateva luni am facut un nou pas, pentru prima data in viata mea am fost la un curs profesional. Cursul era organizat de Info Academy. Platit din buzunarul meu si usor suprapus cu programul de lucru. Dar am ajuns la concluzia ca trebuie sa-l fac. Probabil nu suna ca mare lucru, dar pentru mine care sunt in general autodidact a fost destul de ciudat. Acum ca s-a terminat pot spune ca a fost o foarte buna investitie si il recomand.
Undeva pe parcursul cursului mi-am dat seama ca e timpul sa mai fac cate un boot in linux si acasa. Urmatorul pas a fost reconfigurarea boot managerului sa booteze direct in linux. Acum, dupa ce folosesc aproape exclusiv linux, am ajuns la concluzia ca este suficient de user friendly incat sa fie o alternativa reala pentru Windows.
Symfony framework este alt subiect prafuit pe lista de “todo”. Desi am mai abordat CodeIgniter si Zend Framework, de Symfony nici macar nu m-am apropiat pana anul trecut. Se simte diferenta fundamentala de concept dintre ZF si Symfony, iar eu am simtit-o pe pielea mea. Acesta a fost alt motiv de panica pentru mine la noul loc de munca, pana la urma “all frameworks suck”.
Nu este un framework usor de invatat din pricina conceptelor, dar acum sunt de parere ca merita. Ce-mi place cel mai mult la acest framework este generarea de CRUD, care se face foarte usor si totusi este foarte puternica si flexibila. De asemenea flosirea fisierelor YML, care se pare ca au fost preluate de la Ruby on Rails, este o alternativa mult mai buna la fisierele ini care sunt suportate nativ in PHP.
Ca sa concluzionez, 2010 a fost un an bun, cu multe realizari, chiar daca nu am bifat totul pe rezolutia de anul trecut, cred ca am bifat destule.
Iar acum va urez un an 2011 mai bun si plin de realizari! La multi ani!
-
Saptamana trecuta a trebuit sa realizez un mic proiect. Cerinta era scurta: interoperabilitate. Avand in vedere ca nu am folosit niciodata Adobe AIR am zis ca este o oportunitate buna sa incerc.
Rezultatul este o mica aplicatie de project management. Pentru server am folosit PHP + SOAP + Zend Framework, pentru client am folosit Adobe AIR cu JavaScript.
Serverul l-am rezolvat in cateva linii:
1<?php 2// clasa de autoload pentru Zend Framework 3include 'Zend/Loader/Autoloader.php'; 4 5// clasa care va rezolva cererile SOAP 6include 'SOAP.class.php'; 7 8// initializez autoloader 9Zend_Loader_Autoloader::getInstance(); 10 11// daca se cere fisierul WSDL pentru descriere 12if(isset($_GET['wsdl'])) { 13 $autodiscover = new Zend_Soap_AutoDiscover(); 14 $autodiscover->setClass('test'); 15 $autodiscover->handle(); 16// daca se face un request SOAP 17} else { 18 $soap = new Zend_Soap_Server("http://localhost/soap/index.php?wsdl"); 19 $soap->setClass('test'); 20 $soap->handle(); 21} 22 23?>
Descriptorul se construieste automat folosind comentarile de tip PHP Documenter din clasa care se ocupa de apelurile SOAP, in acest caz clasa se numeste “test”.
Acum ca am trecut de partea usoara m-am apucat de clientul Adobe AIR urmand acesti pasi simpli:
- Descarcat si instalat Aptana Studio
- Instalat plug-in Adobe AIR
- New project -> Adobe AIR
- and voila! Codarea poate incepe!
Adobe AIR foloseste ca motor pentru JavaScript Webkit. Suna cunoscut? Webkit este folosit de Safari si Google Chrome. Deci codul JavaScript nu trebuie sa fie compatibil decat cu Webkit!
Evident exista un “dar” si un plus. “Dar”-ul este ca exista niste restrictii, de exemplu “eval” nu se poate folosi decat pentru decodare de JSON, iar textul introdus intr-un element direct (ca text) nu poate fi rulat:
1div.innerHTML = "<a onclick=\"alert('ceva')\" href=\"#\">click</a>";
Link-ul va ajunge in element dar nu va rula nimic la onclick pentru ca paramentul a fost trimis ca text.
Asta a fost un dezavantaj destul de mare pentru mine, dar am reusit sa gasesc o alternativa construind elementele html folosind DOM si adaugand actiuni cu addEventListener.
Pe scurt Adobe AIR are formula:
1Adobe AIR = (Webkit)Web Development - security + air framework.
Mi se pare foarte usor de dezvoltat in Adobe AIR pentru un Web Developer care vrea sa realizeze o aplicatie desktop.
Evident nu este foarte rapid si nu mi se pare o solutie buna pentru programe foarte complexe. Dar daca vine vorba aplicatii medii si mici, daca ar trebui sa aleg intre Adobe AIR si PHP GTK de exemplu, prima varianta mi se pare mult mai viabila si usor de folosit!
Pana la urma proiectul a fost gata in mai putin de 3 zile iar grafica a iesit genial! Nici nu pare o aplicati facut folosind doar HTML si JavaScript!
-
Daca esti ca mine preferi manualele in format CHM.
Din pacate Zend Framework are manualul doar in .pdf si ceva mai putin evident in format HTML.
Din fericire generarea unui manual in format CHM este foarte simpla (serios, chiar este).
Pasii sunt:
-
Descarca si intaleaza HTML Help Workshop.
-
Descarca manualul in format HTML de la Zend Framework, link-ul este in dreapta jos, nu foarte evident dupa parerea mea.
-
Deschideti HTML Help Workshop.
-
File->Open din directorul unde se afla fisierele manualului fisierul htmlhelp.hhp
-
File->Complile
Gata!
Manualul CHM este doar la cativa pasi de a fi compliat!
-
-
De putin timp Zend a lansat programul Zend Framework Certification. In cadrul programului de certificare, utilizatorul are la dispozitie manualul de referinta, ghidul de studiu, training si un voucher pentru examenul de certificare (si sa nu uitam un tricou foarte interesant 🙂 ).
Avantajele certificarii sunt aceleasi ca si la ZCE in PHP5.
Totusi fata de programul de certificare in PHP5, acest program are cateva lucruri diferite, cum ar fi:
PHP5 Zend framework – este universal valabila pentru toti cei care fac programare in PHP5 – este folositoare doar celor care lucreaza cu… ZF – este universal – exista si alte frameworkuri – trecerea la alte versiune nu implica decat cunoasterea diferentelor – trecerea la alt framework greoaie Trecand peste aceste diferente, atitudinea Zend este una bine venita, pana la urma atrage dupa sine un standard pentru in frameworkuri. Problema este ca nu sunt universal valabile, pana la urma chiar daca nu toti folosim un framework de pe piata, avem tendinta sa ne construim propriul framework.
Invatarea unui astfel de framework are totus avantajul de a oferi o noua perspectiva asupra lucrurilor, ne ajuta sa ne construm o imagine mai clara la ce trebuie sa ne asteptam de la frameworkul folosit. Pe de alta parte, un framework cum este Ruby on Rails a inspirat la randul lui multi programatori in modul cum un framework ar trebui construit, acesta avand echivalente in limbaje cum ar fi Java si evident PHP, fara ca multi dintre ei sa migreze la el. Si ce se intampla daca acum te certifici in el iar apoi te implici in proiecte care folosesc alte frameworkuri?
Pana la urma aceasta este tendinta, asa cum programarea obiectuala a oferit o perspectiva noua pentru refolosire fata de programarea procedurala, asa un framework are tendinta sa aduca programarea orientata obiect la un alt nivel, sporind gradul de refolosire al codului. Dar… doar Zend Framework este solutia?