Symfony2 pentru batuti in cap

CodeIgniter, Zend Framework, Cake PHP, Yii, symfony, Prado, Seagull, Kohana, MODX, eZ Components

Moderator: Moderatori

Avatar utilizator
adyre
Senior Member
Mesaje: 491
Membru din: Lun Dec 06, 2004 9:36 pm
Localitate: Buzau
Contact:

Symfony2 pentru batuti in cap

Mesajde adyre » Mie Noi 05, 2014 5:14 pm

Salut.

De cateva zile incerc sa "rumeg" si eu acest Symfony2, placut si iubit de multi insa documentatia nu e chiar pe intelesul meu, asa ca apelez la persoane care au experienta in asa ceva cu ceva intrebari.
Sa luam un exemplu de Bundle:

Cod: Selectaţi tot

Bundle namespace: Aplicatie/TestBundle
Bundle name: AplicatieTestBundle
Configuration format: yml


Totul ok pana aici, insa incerc sa inteleg arhitectura acestui mininat lucru numit Symfony asa ca incep cu cateva intrebari despre arhitectura noului Bundle:
[Controller]
[DependencyInjection]
[Resources]
[Tests] (1)
AplicatieTestBundle.php (2)

Ok, am evidentiat exact unde anume nu inteleg eu exact cine ce si cum (restul inteleg: Controllerul e unde tin controllerele, DependencyInjection se ocupa cu load-ul de configuratie (routing si services.yml), Resources e ok insa asa ajungem la ce ma intereseaza (sau la ce sunt nedumerit)
1. Test sa inteleg ca e un tester pentru bundle, in cazul chior el cauta sa vada daca controlerul da ceea ce trebuie (definit testul deja cu ruta si continutului controlerului generat default). Cine si in ce fel foloseste acest Tester?
2. AplicatieTestBundle.php e o clasa care extinde clasa bundle a sy2. Insa la ce foloseste? Am vazut ca e loaduita inainte de controller insa pentru ce e folosita? Si care e logica metodelor. Ca nu cred ca faci un constructor care sa parseze url-ul si sa faca ceva in functie de acesta.

Alte intrebari ar fi:
3. Cum anume pot face librarii (de cand ma stiu folosesc CI, si sunt familiarizat cu sistemul de helpere si librarii)? In cazul concret, la ce anume vreau eu sa fac, m-am trezit ca am mai facut inca un bundle (ca de exemplu Aplicatie/LibrariaSpecificaBundle) si o incarc ca si serviciu:

Cod: Selectaţi tot

services:
    librarie.cevadetest:
        class: Aplicatie\LibrariaSpecificaBundle\Controller\AlMeuController

si folosesc in controllerul din 'TestBundle':

Cod: Selectaţi tot

$librarie = $this->get('librarie.cevadetest');
$librarie->executaMetoda();


4. Cum pot face ca un controller sa nu dea crash in momentul in care nu-i intorc un template.
Eu vreau sa dau 'echo' la un json, de exemplu, fara sa fiu nevoit sa inchid controllerul (die, exit s.a.m.d.).
Momentan n-am gasit decat 2 variante: die/exit sau render un twig complet gol. Alte solutii exista?

5. Cum anume se creeaza un model si se foloseste acest model? Stiu ca nu e MVC in toata regula insa sunt obisnuit sa lucrez asa.

Stiu ca intrebarile nu sunt evidente si poate putin stupide (de aici si titlul topicului), si inainte de a cauta x tutoriale de start with symfony2 as avea nevoie sa inteleg exact logica acestui "framework", care personal, nu mi se pare atat de extraordinar pe cat de mult e laudat insa incerc sa-i dau o sansa (si datorita conjuncturii) si datorita faptului ca inca nu-l folosesc la adevarata capacitate.

Cam atat momentan, probabil o sa mai revin cu alte nelamuriri pe masura ce ajung in situatia in care "ma pierd".


Viata e prea scurta sa faci un lucru singur. Cere AJUTOR!

scvroin
New Member
Mesaje: 2
Membru din: Lun Oct 24, 2005 6:34 pm
Contact:

Re: Symfony2 pentru batuti in cap

Mesajde scvroin » Joi Noi 06, 2014 6:07 pm

Salut. Am să încerc eu un răspuns.
1. Acolo faci tdd in principal cu phpunit, pentru clasele pe care le conține bundle-ul tău. Este opțional, iar când crezi bundle-ul îți faci și test minimal pentru controller.
2. Pe scurt, poți să adaugi anumite servici doar pentru bundle-ul respectiv. http://symfony.com/doc/current/cookbook/service_container/compiler_passes.html
3. Nu e nevoie de bundle, poți să faci librăria direct în scr/NumeLibrarie, și apoi să o accesezi ca și serviciu.
4. Se întoarce de fapt un response, așa că Response, JsonResponse. http://symfony.com/doc/current/book/controller.html
5. Aici ai 2 variante, folosești direct doctrine care vine cu symfony, sau ți- construiești tu singur.

Cum poți să înțelegi ceva fără să citești manualul/tutoriale/cod de pe github și bineînțeles să practici.
A developer that seek to learn and master DDD, BDD, both story and spec with php,symfony2, ddd frameworks ;)
Craiova, Romania
https://twitter.com/scvroin
https://github.com/silviuvoicu

Avatar utilizator
adyre
Senior Member
Mesaje: 491
Membru din: Lun Dec 06, 2004 9:36 pm
Localitate: Buzau
Contact:

Re: Symfony2 pentru batuti in cap

Mesajde adyre » Joi Noi 06, 2014 6:52 pm

Multumesc pentru raspuns.
Am tot citit manualul, intr-adevar, nu tot, insa manualul nu este chiar pe rabdarea si gustul meu, de aceea si intrebarile.
Viata e prea scurta sa faci un lucru singur. Cere AJUTOR!

scvroin
New Member
Mesaje: 2
Membru din: Lun Oct 24, 2005 6:34 pm
Contact:

Re: Symfony2 pentru batuti in cap

Mesajde scvroin » Joi Noi 06, 2014 7:11 pm

Cu plăcere.
Și eu îl mai citesc/recitesc, mai dau un google search câteodată. :)
A developer that seek to learn and master DDD, BDD, both story and spec with php,symfony2, ddd frameworks ;)
Craiova, Romania
https://twitter.com/scvroin
https://github.com/silviuvoicu


Înapoi la “Framework-uri PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori