În Editorial

Aproape un an de Drupal

Drupal

Acum aproape un an de zile căutam să învăț lucruri noi și tehnologii interesante. Am profitat de oportunitatea de a participa la un proiect nou bazat pe Drupal 6 și nu regret. Având în vedere mărimea și complexitatea proiectului, optimizarea aplicației era o necesitate.

Acesta a fost unul dintre motivele care m-a convins să accept „provocarea”. Fiind pasionat de optimizări și aplicații mari, am trecut peste ce zisesem cu un an înainte şi anume, că nu-mi plac framework-urile, mai ales când vine vorba de optimizare și am început să învăț Drupal 6. Acum, după ce aplicația este în stadiu de mentenanță, m-am gândit că ar fi interesant să fac un bilanț al experiențelor avute cu Drupal.

De ce recomand Drupal?

Pentru că e altfel. Nu seamănă cu niciun alt framework PHP și e mai mult decât un framework. Poate fi considerat „content management framework„, „web application framework” cât și CMS. E folosit de 1.5% din site-uri la nivel global și poate ţine în spate site-uri cu trafic foarte mare. Toate astea în condițiile în care și cineva care nu știe programare poate face site-uri în Drupal. Nu-i așa că pare interesant?

De unde să înveți?

Am început cu tutoriale și articole pe net. Apoi am vizionat rapid și câteva video-tutoriale de la Lullabot. Însă majoritatea tutorialelor te învață CCK și Views, module de care nu era nevoie în proiectul nostru (vroiam performanță cu orice preț).

Am descoperit apoi cartea „Pro Drupal Development, Second Edition” a celor de la Apress. Recomand cartea tuturor celor care vor să înceapă lucrul în Drupal (există și ediția a 3-a pentru Drupal 7).

În carte se găsesc toate explicațiile necesare pentru a învăța Drupal, de la module de bază, Form API, securitate și inclusiv exemple. Cu alte cuvinte, tot ce ai nevoie ca să începi să lucrezi în Drupal.

La ce probleme ar trebui să te aștepți?

În primul rând, la Drupal, începutul este greu. E faza în care trebuie să iei deciziile de implementare și nu ești niciodată sigur cum să faci asta cât mai bine. Chiar dacă știi mare parte din metode, hook-uri, o să trăiești cu impresia că există o altă soluție mult mai potrivită decât cea aleasă de tine (sau doar eu sunt perfecționist?). Ca să treci peste situațiile de genul ăsta, trebuie să cauți module pe net care fac ceva asemănător cu ce vrei tu și să te inspiri.

O altă variantă, mai rapidă și mai simplă, e să discuți cu cineva cu experiență. Dacă alegi totuşi să faci o analiză a modulelor deja existente, o să fii uimit de câte lucruri noi înveți și o să exclami de multe ori „oare de ce nu m-am gândit și eu la asta înainte!?”.

Tot aici o să apară și problemele tipice de dezvoltare. Golirea cache-ului atunci când modifici meniul sau tema sunt genul de greșeli care „îți scapă” și îți fac viața grea la început. O să te amuzi pe seama lor după ce apuci să capeți puțină experiență și o să ți se pară la fel de banale ca un semn „;” uitat  în PHP.

Dacă reușești să treci peste etapa de început, apoi deja lucrurile devin simple. O să acumulezi informații și experiență mult mai ușor și nu o să fie greu să ajungi să descoperi tot felul de trick-uri care la început ţi se păreau imposibile.

Te ajută comunitatea, modulele existente?

Răspunsul este, în mod sigur, da. Drupal.org anunță nu mai puțin de 8678 de module existente la ora actuală pentru Drupal. Multe din ele sunt incomplete sau cu erori, dar, totuși, foarte valoroase. Chiar dacă nu te ajută direct, te pot scoate din impas atunci când nu ai idee cum să implementezi un anumit feature sau pot fi un punct de plecare la modulele scrise de tine. Cele mai multe dintre erorile găsite în modulele din comunitate sunt foarte ușor de rezolvat.

Pe lângă cele obişnuite, adică cele cu mici erori, eventual chestii lipsă faţă de ce ţi-ai dori tu, mai există şi module care te scutesc de multe zile de lucru. Am răsuflat uşurat după ce am aflat că module ca Apache Solr sau CDN integration şi altele funcţionează exact aşa cum trebuie. Nici nu vreau să mă gândesc cât dura dezvoltarea de la zero a unor feature-uri asemănătoare.

Şi totuşi, merită să înveţi Drupal?

Eu zic da, este de viitor. Nu crezi?