In aceasta perioada trec printr-un stagiu de acomodare cu frameworkul Symfony, iar primele impresii nu sunt deloc placute.
Primul lucru peste care dai indata ce incepi sa studiezi Symfonyul este modul in care acesta stocheaza setarile, si anume in format YAML. Acest lucru prezinta overhead in citirea configurarilor, si nu pot intelege de ce fisiere de configurare PHP nu sunt de ajuns. Overheadul nu pot zice cat este de mare, dar nevoia de a invata modul de folosire al YAML in cadrul Symfony e mult mai putin decat intuitiv. Asta nu in cazul celor evidente, pe cat in cazul definirii structurilor tabelelor (si nici in documentatie nu am gasit exact cum sa descriu anumite coloane de sql, a trebuit sa recurg la google pentru asta).
Daca ziceam ca se foloseste intensiv YAML, nu va speriati, aveti la dispozitie si XML, doar pentru definirea tabelelor. Si ca suntem cu vorba la definirea tabelelor, sa stiti ca acel YAML/XML este convertit in syntaxa SQL si rulat. Asta e cu siguranta cel mai bun lucru pe care l-au putut realiza.
Un alt aspect care din fazele incipiente pare “enervant” consta in trecerea constanta la console si la rularea unor serii de comenzi pentru fiecare modul, modificare db, configurare in parte. Si sa nu uitam de modul dezordonat in care parametrii acestuia se prezinta; pentru unele optiuni avand variante scurte, iar pentru majoritatea nu.
SVN aruncat de umplutura in documentatie.
Ce este Criteria()? Da, stiu ca este folosit pentru criterile de cautare in baza de date, dar in documentatie nu apare.
Modelul MVC implementat e supra-gandit. Sapte fisiere pentru generarea de pagini. Se vede ca sistemul de templateting a fost gandit de programatori mai vechi. Si termenii sunt aiurea: layout, template, fragment. Unde parca template nu e acelasi lucru cu fragment.
Tranzactiile sunt database independent, adica sunt facute din partea de PHP. Poate doar mie mi se pare acest lucru ciudat. De asemenea frameworkul e gandit astfel ca el la treceri db sa fie functional fara modificari de setari la db. Si acum ma gandesc, la un proiect de cate ori schimbi baza de date? Cel mai probabil niciodata.
Helperul de formuri nu mi se pare atat de bine gandit, precum nici validarea. Din nou YAML, in loc sa foloseasca un model precum cel de la CodeIgniter (desigur si el ar putea fi imbunatatit, dar e un pas spre bine).
Folosinta excesiva de setter/getter pattern devine enervanta la un moment dat mai ales datorita numelor foarte lungi ale metodelor.
$this->getRequest()->getParameterHolder()->get($name) // si varianta "scurta" $this->getRequestParameter($name)
Pana acum nu a fost o experienta foarte placuta, iar aceste ganduri “negre” mi s-au format dupa doar o zi de utilizare. Poate a fost scris putin in graba caci vroiam sa zic cele enumerate inainte sa imi iasa din minte.
Cat despre cele placute in framework, singurul lucru care ma atras a fost scaffoldingul pus la dispozitie, eficace si simplu.
Cat despre faptul ca tutorialele acestora merg pe metodologia XP (Extreme Programming) nu a putut sa faca altceva decat sa ma irite si mai tare. Scrie intai, regandeste dupa.
Pana acum, doar eficace nu e termenul care sa imi vina in minte cand ma gandesc la Symfony.

