Yii2 framework
Yii2 este un framework bazat pe PHP care asigură dezvoltarea rapidă a aplicațiilor web. Yii2 este un framework generic prin faptul că poate fii folosit pentru orice tip de aplicație web folosind limbajul de programare PHP. Numele acestuia provine din limba chineze si prin traducere înseamnă "simplu și revoluționar" [1].
În momentul actual, framework-ul are două versiuni active și anume versiunea 1.1 și versiunea 2.0. Versiunea 1.1 face parte din generația de punere a bazelor acestui framework, în continuare este funcțională, dar este trecută în modul de mentenanță. Versiunea 2.0 este o completă rescriere a celei precedente ei, 1.1, care a adoptat o mulțime de funcționalități precum includerea librăriei Composer sau utilizarea namespace-urilor. Prioritatea acestui framework este performanța aplicațiilor dezvoltate cu ajutorul acestuia, dar și securitatea datelor.
Framework-ul Yii2 suportă o arhitectură de tip MVC (Model-View-Controller) și implicit este dezvoltat după acest pattern arhitectural. Pattern-ul arhitectural MVC împarte funcționalitatea aplicației în trei mari componente logice: Model, View și Controller. Arhitectura de tip MVC este cea mai folosită arhitectură pentru dezvoltarea aplicațiilor web. Fiecare din componentele ei definește un set de reguli pe care se bazează pentru a simplifica munca dezvoltatorului și pentru a crea o anumită oridne logică în operații.
Figura 2. Pattern arhitectural MVC
Componenta Model reprezintă partea de operații logice de date pe care utilizatorul le face. Acesta poate prezenta date legate de logica pe care aplicația dorește să o utilizeze. Principalul lui obiectiv este acela că tranzacționează direct cu baza de date, astfel o mare parte a logicii aplicației îi aparține acestei componente.
Componenta View este utilizată pentru logica interfeței. În acestă componentă se găsește tot ceea ce tine de design-ul aplicației, tot ceea ce utilizatorul aplicației vede. Prin design-ul aplicației ne referim atât la aranjamentul componentelor în pagină cât și vizualizarea lor ca și tabele, meniuri, etc.
Componenta Controller reprezintă o interfață între celelalte două componente menționate anterior. Obiectivul acestei componente este de a manipula datele folosing componenta Model și de a le afișa prin interacțiunea cu componenta View.
Lavaravel este de asemenea un framework care are o arhitectură de tip MVC. De asemenea Laravel este un framework care se bazează tot pe limbajul de programare PHP[2].
În tabelul de mai jos se va realiza o comparație între cele două framework-uri de PHP[3].
Yii2 | Laravel |
Suportă arhitectură MVC pentru back-end |
Nu suportă arhitectură MVC pentru back-end |
Rapid ca și performantă a aplicației | Mai puțin rapid ca și performanță a aplicației |
Validarea datelor se face direct din formular | Validarea datelor se face dintr-o clasă separată |
Generator de CRUD-uri | CRUD-urile se implementează manual |
Pentru testarea aplicațiilor dezvoltate cu ajutorul framework-ului Yii2 se va folosi o testare de tip explorativ (eng. explorative testing). Testarea explorativă este definită ca și învățarea simultană, proiectarea de teste și execuratea acestora. Cu alte cuvinte, testarea explorativă este orice testare în care cel care testează controlează această testare. Controlarea testării înseamnă folosirea informațiilor obținute în urma unui test, pentru aducerea sistemului în varianta dorită [4].
Datorită faptului că framework-ul Yii2 este baza pe arhitectura MVC și totodata este bazat pe limbajul de programare PHP, testarea de tip explotiv se va face cu ajutorul comenzilor din PHP echo, print, print_r sau die [5].
Figura 3. Teste explorativă
Ca rezultatele să fie cele dorite trebuie ca pe parcursul întregii utilizări a aplicației construite cu ajutorul framework-ului Yii2 toate componentele dezvoltate cu ajutorul arhitecturii MVC să funcționeze exact cum au fost definite pentru a funcționa. Cu alte cuvinte, toate cele trei mari componente a arhitecturii MVC, anume Model, View și Controller, să funcționeze ca o singură componentă complexă.
[1] - Safronov, M., & Winesett, J. (2014). Web application development with Yii 2 and PHP. Packt Publishing Ltd.
[2] - Stauffer, M. (2019). Laravel: Up & Running: A Framework for Building Modern PHP Apps. O'Reilly Media.
[3] - disponibil online: https://www.educba.com/laravel-vs-yii/
[4] - Bach, J. (2003). Exploratory testing explained.
[5] - disponibil online: https://www.yiiframework.com/doc/guide/2.0/en/test-overview