PHP Frameworks

PEAR, Smarty, ADOdb, OOP, PHP 5, XML, UML, Şabloane de proiectare, PHP-GTK.

Moderatori: coditza, Emil, Moderatori

coditza
Senior Member
Mesaje: 298
Membru din: Vin Ian 23, 2004 7:30 pm
Localitate: cluj-napoca

PHP Frameworks

Mesajde coditza » Mar Mar 28, 2006 7:40 am

Niatza :D

Din celalalta topic, de aici, am tras concluzia ca prezentarea unor frameworkuri pentru php nu poate face decat bine comunitatii. Si de asta, vreau ca in topicul acesta sa PREZENTAM frameworkurile cu care lucram.

Am spus prezentare, deci NU vreau ca fiecare sa-si spuna parerea, avizata sau mai putin avizata despre ceea ce vom prezenta in continuare.

Si ca sa fie si mai usor, propun si un schelet pe baza caruia sa facem aceste prezentari.


I. Generalitati
1. Scop
2. Url
3. Scurt intro (pe ce se bazeaza (eg, Mojavi pe MVC), cate versiuni sunt, ce requirements au si faze de genul)

II. Pro
O lista cu ce chestii faine sunt in el

III. Contra
O lista cu ce e naspa in el

Cum nici un poster nu va putea sintetiza tot din primul post, propun de asemenea sa deschidem si cate un topic auxiliar in care sa discutam liber ce si cum, legat de frameworkul respectiv, iar posterul original, from time to time, sa-si editeze postul din acest topic si sa-l actualizeze.
Ultima oară modificat Mar Mar 28, 2006 8:05 am de către coditza, modificat 1 dată în total.



coditza
Senior Member
Mesaje: 298
Membru din: Vin Ian 23, 2004 7:30 pm
Localitate: cluj-napoca

Mesajde coditza » Mar Mar 28, 2006 8:05 am

Mojavi

I. Generalitati
1. Scop
Fragmentarea taskurilor. Afisarea unui meniu nu se intampla in clasa in care ai logica pentru managementul paginilor statice.

2. Url
http://www.mojavi.org si http://www.agavi.org/

3. Scurt intro
Este o implementare clasica a MVC-ului. Este impartit clar pe layere, avem controler si actionuri (comenzi), viewuri (clasele view si templateuri) si modeluri.
Exista 3 variante:
- (php4) mojavi 2 - probabil cel mai stabil dintre variante
- (php5) mojavi 3, care a fost pentru moment abandonat si succesorul sau agavi - pana si 3 simplu mi se pare destul de matur (nu am gasit foarte multe buguri si nici unul dintre ele care sa nu poata fi reparat rapid)
- (php5) mojavi 4 - the cutting edge - dupa cate am inteles, creatorul original al lui Mojavi a abandonat acest branch, de dezvoltarea lui ocupandu-se altcineva. Din nefericire, toate cele 3 tentative de al testa s-au soldat cu esecuri (deh, poate am eu prea mult "noroc")

II. Pro
- impartire extrem de clara a taskurilor
- foarte multe obiecte shared (context si membrii lui nu sunt trimisi de la o componenta la alta, ei sunt prezenti all over the place, ca un fel de variabile globale - poate ca un alt aproach, de exemplu context sa fie un singleton, ar fi fost mai indicata)
- acomodare (pentru mine) destul de rapida
- impartirea pe module (modulele sunt colectii de dublete action-view, oarecum related)
- fiecare bucata configurabila are propriul fisier de configurare - o aplicatie desktop, in genul Delphi sau CBuilder, s-ar preta foarte bine la crearea unui IDE RAD bazat pe acest framework (daca as fi in an terminal, as stii care imi este lucrarea de diploma :D ).
- impartirea viewurilor complexe in viewuri simple (patternul Decorator si sloturile): poti face ca unele variabile din templateuri sa fie populate de alte dublete action-view.
- sistem inteligent de autoload (dar ma gandesc daca treaba aia ar mai merge daca codul ar fi ofuscat)

III. Contra
- fiecare bucata configurabila are propriul fisier de configurare - sunt prea multe, damnit
- complexitate destul de ridicata (acest lucru poate fi contracarat cu o serie de scripturi generatoare, dar pentru un newcommer, acest lucru poate fi coplesitor)
- lipsa documentatiei si a exemplelor (de exemplu, inca nu m-am prins pentru ce sunt folosite filtrele)
- fiecare varianta (2, 3 si 4) folosesc alte aproacheuri si trecerea de la o versiune la alta e destul de complicata.
function foo() { foo(); }

coditza
Senior Member
Mesaje: 298
Membru din: Vin Ian 23, 2004 7:30 pm
Localitate: cluj-napoca

Mesajde coditza » Mie Apr 05, 2006 7:40 pm

Noah, biscuiti, prajituri, nika? Sau va e lene sa scrieti?
function foo() { foo(); }

aurelian
Senior Member
Mesaje: 833
Membru din: Dum Iun 01, 2003 7:54 pm
Localitate: Bucuresti
Contact:

Mesajde aurelian » Joi Apr 06, 2006 10:45 am

Cam la reactia asta ma asteptam :)
Insa, eu nu pot vorbi decat despre medick si nu o voi face, sa nu se intaleaga ca ar fi vorba despre o reclama ascunsa.
La alte frameworkuri, as scoate in evidenta doar punctele slabe, deci nu as fi impartial.

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Joi Apr 06, 2006 10:51 am

aurelian scrie:Insa, eu nu pot vorbi decat despre medick si nu o voi face, sa nu se intaleaga ca ar fi vorba despre o reclama ascunsa.

Hai dom'le fa reclama, ca nu faci reclama la chiloti ci la un produs Open Source. Chiar te rog sa-ti faci reclama si sa evidentiezi punctele slabe ale celorlalte caci banuiesc ca le-ai studiat destul si iti poti spune o parere avizata.
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

aurelian
Senior Member
Mesaje: 833
Membru din: Dum Iun 01, 2003 7:54 pm
Localitate: Bucuresti
Contact:

Mesajde aurelian » Joi Apr 06, 2006 11:59 am

carco scrie:Hai dom'le fa reclama, ca nu faci reclama la chiloti ci la un produs Open Source.


PROC Reclama BEGIN;

Medick

I. Generalitati
1. Scop
Ascunderea in spatele unui cod destul de mizerabil (momentan) a diverselor probleme din php.
Eficienta crescuta a programatorului, cod reutilizabil orientat pe obiecte, cod testabil, programatori si clienti fericiti.
2. URL
Vezi mai sus.
3. Intro
Un scurt istoric al proiectului.
Din pacate, de cateva luni simt ca in PHP nu ma pot exprima destul de bine (deh, fiecare ar trebui sa evolueze), nu sunt inca master of ruby, dar cam incerc sa introduc in medick diverse facilitati din rails.

Statutul proiectului, pre-alpha (sau planning). Astfel am inca dreptul de a incalca compatibilitatile cu versiunile mai vechi.
medick 0.2.1 a aparut la jumatatea lunii martie, 2006 si defineste un set de baza de facilitati dupa care voi continua dezvoltarea. Cam toate problemele aparute au fost rezolvate in svn si in functie de timp, o versiune 0.2.2 va fi lansata ASAP.
Pana atunci, cod stabil: svn trunk :)

Sunt in diverse tratative pentru a realiza aplicatii comerciale ce vor folosi medick ca framework. Deci, am destula incredere in codul deja existent, si nu vor fi BC breaks foarte curand, sau vor exista alternative si descrieri detaliate ale acestor schimbari si cum se vor putea upgrada aplicatiile existente la o versiune superioara.

Momentan, proiectul este de tipul "one-man-show" insa tin sa le multumesc tuturor celor care si-au dat cu parerea, si in ordine: apann (din pacate nu prea mai apare) care m-a sustinut de la inceput, a trimis idei sau diverse patchuri, carco (fost em@il) care a avut rabdare sa faca un review destul de detaliat dupa release 0.2.1. si ExcalIbvr, stie el de ce :)
Fiind un proiect open-source, orice crititca constructiva, idee sau orice alta modalitate de sustinere vor fi apreciate.

II. Pro

Suport in limba romana pentru noii veniti.

Taskurile asemanatoare din cadrul uei aplicatii web sunt grupate intr-o singura clasa (spre deosebire de Mojavi de ex unde fiecare request web este mapat la o clasa), in felul acesta, se elimina o tona de obiecte, despre care la un moment va fi foarte greu sa iti aduci aminte unde se afla fiecare, cum ai configurat fiecare obiect in parte, sau cum interactioneaza obiectele respective intre ele. La fel, procentul de reutilizare creste (mostenire, metode private in interiorul claselor etc.).

III. Contra
Din pacate nu ma pot ocupa 8 ore / zi de acest proiect din cauza asta:
- documentatia cam lipseste ==> un nou venit va invata destul de greu sa lucreze cu medick.
- releasurile sunt destul de rare, am reusit sa reduc timpul cam la o luna, dar tot este mult, cam greu cu Release Early, Release Often
- task-uri importante: unit-testing sau code refactoring sunt cam la sfarsitul listei de asteptare.

Cam atat.
Pentru a nu strica idea initiala a acestui topic pentru detalii, intrebari etc. exista in cadrul acestui forum un topic special, sau on Projects.

Reclam END;

Tot in functie de timp, o sa incerc sa critic restul de frameworkuri din php :)

moisadoru
New Member
Mesaje: 1
Membru din: Mie Feb 15, 2006 3:05 pm

no-framework PHP MVC framework

Mesajde moisadoru » Mie Iul 19, 2006 3:42 pm

De la nea' Rasmus, scurt si la obiect referitor la MVC, frameworks si simplitate/complexitate in php:

url:
http://toys.lerdorf.com/archives/38-The ... ework.html

Best regards,
Moisa Doru[/url]

Avatar utilizator
kelye
Senior Member
Mesaje: 230
Membru din: Vin Ian 20, 2006 10:42 pm
Localitate: Bucuresti
Contact:

Mesajde kelye » Vin Ian 05, 2007 1:05 pm

Pentru cei ce sunt tentati de subiect.. o colectie :)

http://www.phpwact.org/php/mvc_frameworks

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Lun Mai 07, 2007 2:06 pm

Eu lucrez cu Code Igniter
I. Generalitati
1. Scop
Crearea de pagini web rapid si usor, ma scuteste de o gramada de lucru si formatare de cod.
2. Link
google search dupa codeigniter (nu ma lasa forumu sa-i postez linku :()
3. Scurt intro
Se bazeaza pe MVC, codul este transparent, inteligibil si usor de modificat si configurat. Momentan este la versiunea 1.5.3. Cerinte - PHP si eventual o baza de date (stie sa lucreze cu mysql, mysqli, postgresql etc...)

II. Pro
Usureaza mult lucrul programatorului, mai ales in ceea ce priveste lucrul bazele de date. E bazat pe o ierarhie de obiecte, fiecare obiect avand o serie de metode cu care se efectueaza taskurile. Ce mi-a placut cel mai mult este ca cu un apel de genul

Cod: Selectaţi tot

$this->db->insert('tabela', $_POST)
se realizeaza un insert in tabela respectiva a campurilor din arrayul $_POST corespunzatoare, valorile lor fiind in prealabil formatate cum trebuie, deci multa multa multa munca scutita. Are de asemeni obiecte pentru crearea de tabele html, lucreaza cu variabile de sesiune proprii (nu cu cele native php) care pot fi si criptate... Cam atat imi vine in minte acum.
III. Contra
Singurul inconvenient la care ma pot gandi este ca fiind bazat pe MVC, pentru ca un script sa functioneze calumea trebuie lucrat in 3 fisiere simultan (controllerul, modelul si view-ul) dar asta s-a rezolvat de cand lucrez cu Zend Studio direct pe fetepeu. Inainte mi se intampla sa modific ceva in model si sa fac upload tot la view, de exemplu, si tot injuram ca de ce nu merge ;)

Cam atat deocamdata. Let me know ce parere aveti.

xcristi
Junior Member
Mesaje: 31
Membru din: Vin Mai 04, 2007 8:47 am

Mesajde xcristi » Sâm Iul 07, 2007 3:18 pm

mihaitha scrie:Eu lucrez cu Code Igniter
...
Cam atat deocamdata. Let me know ce parere aveti.


Si eu tot codeigniterfolosesc si mi se pare super. Arhitectura MVC superba, dupa ce te acomodezi putin cu ea (la inceput te lasa cam confuz). Securitate sporita, performante excelente. Dezvoltare puternica, cu un forum destul de activ.

Si nu in ultimul rand, te invata sa scrii cod curat si ordonat. ;)

http://www.codeigniter.com/

Avatar utilizator
UnD3aD
Senior Member
Mesaje: 351
Membru din: Lun Apr 10, 2006 2:01 pm
Localitate: Cta
Contact:

Mesajde UnD3aD » Sâm Iul 07, 2007 8:57 pm

a lucrat cineva si cu codeIgniter si cu cake? am vazut ca sunt cat de cat asemanatoare... as vrea sa renunt la cake din cauza functiilor de la db...
Programming is like chewing a pack of bubble gum. If you chew it all at once you're going to die.
www.onlinecronjobs.com
www.byraul.net
DeviantArt

Postal2600
New Member
Mesaje: 1
Membru din: Sâm Noi 10, 2007 3:49 pm

framework made in .ro

Mesajde Postal2600 » Sâm Noi 10, 2007 4:02 pm

Eu vreu sa va propun spre atentie alceva: un php framework la care lucrez momentan: phpDrone

Incerc de multa vreme sa obtini niste pareri asupra lui dar pana acuma nu am prea gasit 'clienti', posibil din lipsa de interes ori, si sper sa nu fie cazul, din cauza calitatii proaste a proiectului.

Nu e intr-un stadiu destul de avansat, ca alte frameworkuri, dar am reusit sa-l implementez cu succes in cadrul unor proiecte personale si comerciale.

Proiectul poate fi gasit la adresa: phpdrone.cvds.ro

Printe componentele acestui framework pot enumera: un sistem de template-ing (care la ultima testare a fost de 2 ori mai rapid ca Smarty :D ), widget-uri HTML cum ar fi un modul de manipulare a formurilor HTML, care permite creerea automata de formumare HTML, incluzand atribuirea unei functii care sa se ocupe de manipularea datelor submise, validarea acestora si generarea de cod HTML pentru afisarea formularului in diferite situati, caz concret ar fi acela in caz de eroare. Un alt widget care ar mai trebui mentionat este un widget pentru paginarea listelor.

Deocamdata sunt singurul dezvoltator din spatele acestui proiect, si sper sa mai gasesc pe alcineva cu care sa punem in miscare acest proiect.

Sper sa va fi trezit interesul pentru a acorda putin tipm evaluarii acestui proiect, si astept opiniile voastre, fiele ele si negative :)

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Dum Noi 11, 2007 2:12 am

Bafta !

mg_cristi
New Member
Mesaje: 3
Membru din: Joi Ian 01, 2009 3:38 pm

Mesajde mg_cristi » Vin Ian 02, 2009 9:43 pm

Eu folosesc PEAR si XSL. In asta consta frameworkul meu !

Clasele de care am nevoie si nu sunt in PEAR le fac eu: imi place sa le fac cat mai modulare, sa le pot modifica cand am nevoie.

E foarte rapid ...

P.S.: Multe comenturi.

gogu
PHPRomania Supporter
Mesaje: 12
Membru din: Mar Iul 21, 2009 11:04 am

Mesajde gogu » Mie Iul 22, 2009 12:26 pm

mihaitha scrie:Eu lucrez cu Code Igniter
I. Generalitati
1. Scop
Crearea de pagini web rapid si usor, ma scuteste de o gramada de lucru si formatare de cod.
2. Link
google search dupa codeigniter (nu ma lasa forumu sa-i postez linku :()
3. Scurt intro
Se bazeaza pe MVC, codul este transparent, inteligibil si usor de modificat si configurat. Momentan este la versiunea 1.5.3. Cerinte - PHP si eventual o baza de date (stie sa lucreze cu mysql, mysqli, postgresql etc...)

II. Pro
Usureaza mult lucrul programatorului, mai ales in ceea ce priveste lucrul bazele de date. E bazat pe o ierarhie de obiecte, fiecare obiect avand o serie de metode cu care se efectueaza taskurile. Ce mi-a placut cel mai mult este ca cu un apel de genul

Cod: Selectaţi tot

$this->db->insert('tabela', $_POST)
se realizeaza un insert in tabela respectiva a campurilor din arrayul $_POST corespunzatoare, valorile lor fiind in prealabil formatate cum trebuie, deci multa multa multa munca scutita. Are de asemeni obiecte pentru crearea de tabele html, lucreaza cu variabile de sesiune proprii (nu cu cele native php) care pot fi si criptate... Cam atat imi vine in minte acum.
III. Contra
Singurul inconvenient la care ma pot gandi este ca fiind bazat pe MVC, pentru ca un script sa functioneze calumea trebuie lucrat in 3 fisiere simultan (controllerul, modelul si view-ul) dar asta s-a rezolvat de cand lucrez cu Zend Studio direct pe fetepeu. Inainte mi se intampla sa modific ceva in model si sa fac upload tot la view, de exemplu, si tot injuram ca de ce nu merge ;)

Cam atat deocamdata. Let me know ce parere aveti.


mai sint multe de adaugat... are o clasa de incriptare cu un algoritm propriu destul de bunicel daca serverul nu are Mcrypt instalat, iar daca are incriptarea este dubla. are o clasa de validare a formularelor foarte buna. are XSS filtering. are tot ce-ti trebuie ca sa nu mai pierzi timpul cu detalii; iar daca nu are, inseamna ca cerintele proiectului tau sint iesite din comun -- in cazul asta... e foarte usor sa-ti faci.

din toate cu cite am lucrat (si am lucrat cam cu toate) CodeIgniter e cel mai bun (parerea mea). si mai are ceva: o licenta foarte permisiva: poti sa-l schimbi cum vrei si sa-l ametesti si dupa aia sa-l botezi cum vrei si e al tau. nu trebuie sa spui decit ca produsul final e bazat pe CI.


Înapoi la “PHP Avansat”

Cine este conectat

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