Codeigniter vs Yii
Moderator: Moderatori
Re: Codeigniter vs Yii
Am facut un CMS pe CodeIgniter si am dezvoltat doua platforme pe CodeIgniter si Yii incepand de la site-uri deja dezvoltate pe ele.
Daca ai ceva experienta cu un MVC si intelegi OOP recomand sa iti faci propria arhitectura. Poate te bucuri la niste extensii pe care nu o sa le folosesti niciodata dar sincer din ce am vazut eu incearca sa faca niste lucruri care nu au sens. Si pot sa povestesc doua zile, sincer ambele site-uri pe care le-am refacut au fost scrise de programatori care nu inteleg nici cel mai elementar lucru cand vine vorba de mentalitatea OOP sau MVC, pur si simplu l-au folosit pentru ca aveau niste manageri care vroiau sa stie toti unde sa se uite cand modifica o liniuta de cod ca vezi-doamne fac mai multa treaba. Este complet gresit!
Si acum putin din experiente neplacute: Yii este foarte strict cand vine vorba de modele si relationarile intre ele, din ce am vazut toti au fost entuziasmati si au inceput sa scrie codul ca la carte (in cazul asta manualul Yii) dar pe parcurs cand cerintele au devenit serioase nu au mai inregistrat campuri noi in modele, relationarile s-au schimbat si s-a cam dus totul de rapa, este destul de aiurea sa faci modificari mari la modele si relationari pentru ca daca ai un site maricel ai de rescris controllere si de retestat de nu mai stii de tine.
In CodeIgniter am vazut un bug de te doare capul, CMS-ul meu ruta absolut totul spre el si dupa manual am facut OK pe Windows CMS-ul si pe Linux nu imi mergea. Era din cauza ca foloseam un caz mai special de rutare; dupa manual un fisier trebuia scris cu litera mare dar verifica daca exista acel fisier cu litera mica (Linux file system is case-sensitive). M-am uitat direct in functia aia care ruteaza si am vazut...
Si mai e ceva ce ma enerveaza la culme, se standardizeaza totul excesiv de mult, parca zici ca intr-o buna zi un programator de CodeIgniter o sa faca un site fara sa stie PHP, ASP, MySQL, PostgreSQL etc. De ex., sunt niste functii speciale pe care le folosesti sa generezi interogari in baza de date, ideea e sa scrii totul in limbajul CodeIgniter si face el sintaxa SQL. In cazul in care pe viitor se schimba database engine codul o sa mearga... Bun, de acord, asa ar fi ideal, dar problema e ca in doi trei ani cand se schimba sistemul de management al bazei de date site-ul este oricum o mare vechitura si are alte cerinte, este foarte probabil sa fie oricum refacute parti din el. Si nu ar fi nici asta o problema, sa nu mai fie programatori PHP atunci ca nu mai e nevoie de ei. Problema e alta, la site-ul ala scris in CodeIgniter am dat de o problema care ar face orice programator care stie PHP elementar sa rada cu lacrimi, aveau ei o mare interogare in baza de date facuta ca la carte cu CodeIgniter. Si intr-o buna zi site-ul le dadea mesajul ala cum ca au ramas fara memorie si ei ziceau sa umble la setarile serverului. Habar nu aveau cum functioneaza CodeIgniter, ca sa standardizeze cu functiile alea alea lui returna un array care a fost mic si s-a facut mare. Ce sens are sa dai vina pe server? Eu le-am scris mysql_query() cum se face pentru ca ala tine un link spre o resursa temporara pe HDD, nu in RAM. Si o sa mearga si peste 3000 de ani.
In concluzie, sunt mult supraevaluate framework-urile astea si incearca sa tinda spre o perfectiune care nu este practica. NU recomand Yii pentru ca este greu de intretinut "ca la carte" pe termen lung si oricum o sa ajungi sa il folosesti pentru niste functii deja scrise si pentru faptul ca iti manageriaza si ruteaza requesturile. Deci ajung la cerinte de un CodeIgniter (care nu este asa de strict).
Si ca fapt divers, acum ofer consultanta pentru o firma care face outsourcing cu unii care le scriu un site in Zend... Au niste RSS-uri de generat si proiectul sta in loc din cauza ca pe server nu este instalta nu stiu ce extensie pe care o foloseste Zend la generarea XML-ului. Ca orice om normal, le-am propus sa genereaze direct XML-ul ala, ca pana la urma daca respecti niste standarde destul de simple RSS-ul este valid si daca e scris la mana, tot ce au ei de facut este sa incarce un view care genereaza cod XML in loc de HTML. Este clar ca nu au mare experienta si necazul este ca daca nu ai experienta si nu intelegi ce fac ele acolo pe termen lung o sa iti complice foarte mult viata.
Deci, alege framework-ul pe care il intelegi cel mai bine
Daca ai ceva experienta cu un MVC si intelegi OOP recomand sa iti faci propria arhitectura. Poate te bucuri la niste extensii pe care nu o sa le folosesti niciodata dar sincer din ce am vazut eu incearca sa faca niste lucruri care nu au sens. Si pot sa povestesc doua zile, sincer ambele site-uri pe care le-am refacut au fost scrise de programatori care nu inteleg nici cel mai elementar lucru cand vine vorba de mentalitatea OOP sau MVC, pur si simplu l-au folosit pentru ca aveau niste manageri care vroiau sa stie toti unde sa se uite cand modifica o liniuta de cod ca vezi-doamne fac mai multa treaba. Este complet gresit!
Si acum putin din experiente neplacute: Yii este foarte strict cand vine vorba de modele si relationarile intre ele, din ce am vazut toti au fost entuziasmati si au inceput sa scrie codul ca la carte (in cazul asta manualul Yii) dar pe parcurs cand cerintele au devenit serioase nu au mai inregistrat campuri noi in modele, relationarile s-au schimbat si s-a cam dus totul de rapa, este destul de aiurea sa faci modificari mari la modele si relationari pentru ca daca ai un site maricel ai de rescris controllere si de retestat de nu mai stii de tine.
In CodeIgniter am vazut un bug de te doare capul, CMS-ul meu ruta absolut totul spre el si dupa manual am facut OK pe Windows CMS-ul si pe Linux nu imi mergea. Era din cauza ca foloseam un caz mai special de rutare; dupa manual un fisier trebuia scris cu litera mare dar verifica daca exista acel fisier cu litera mica (Linux file system is case-sensitive). M-am uitat direct in functia aia care ruteaza si am vazut...
Si mai e ceva ce ma enerveaza la culme, se standardizeaza totul excesiv de mult, parca zici ca intr-o buna zi un programator de CodeIgniter o sa faca un site fara sa stie PHP, ASP, MySQL, PostgreSQL etc. De ex., sunt niste functii speciale pe care le folosesti sa generezi interogari in baza de date, ideea e sa scrii totul in limbajul CodeIgniter si face el sintaxa SQL. In cazul in care pe viitor se schimba database engine codul o sa mearga... Bun, de acord, asa ar fi ideal, dar problema e ca in doi trei ani cand se schimba sistemul de management al bazei de date site-ul este oricum o mare vechitura si are alte cerinte, este foarte probabil sa fie oricum refacute parti din el. Si nu ar fi nici asta o problema, sa nu mai fie programatori PHP atunci ca nu mai e nevoie de ei. Problema e alta, la site-ul ala scris in CodeIgniter am dat de o problema care ar face orice programator care stie PHP elementar sa rada cu lacrimi, aveau ei o mare interogare in baza de date facuta ca la carte cu CodeIgniter. Si intr-o buna zi site-ul le dadea mesajul ala cum ca au ramas fara memorie si ei ziceau sa umble la setarile serverului. Habar nu aveau cum functioneaza CodeIgniter, ca sa standardizeze cu functiile alea alea lui returna un array care a fost mic si s-a facut mare. Ce sens are sa dai vina pe server? Eu le-am scris mysql_query() cum se face pentru ca ala tine un link spre o resursa temporara pe HDD, nu in RAM. Si o sa mearga si peste 3000 de ani.
In concluzie, sunt mult supraevaluate framework-urile astea si incearca sa tinda spre o perfectiune care nu este practica. NU recomand Yii pentru ca este greu de intretinut "ca la carte" pe termen lung si oricum o sa ajungi sa il folosesti pentru niste functii deja scrise si pentru faptul ca iti manageriaza si ruteaza requesturile. Deci ajung la cerinte de un CodeIgniter (care nu este asa de strict).
Si ca fapt divers, acum ofer consultanta pentru o firma care face outsourcing cu unii care le scriu un site in Zend... Au niste RSS-uri de generat si proiectul sta in loc din cauza ca pe server nu este instalta nu stiu ce extensie pe care o foloseste Zend la generarea XML-ului. Ca orice om normal, le-am propus sa genereaze direct XML-ul ala, ca pana la urma daca respecti niste standarde destul de simple RSS-ul este valid si daca e scris la mana, tot ce au ei de facut este sa incarce un view care genereaza cod XML in loc de HTML. Este clar ca nu au mare experienta si necazul este ca daca nu ai experienta si nu intelegi ce fac ele acolo pe termen lung o sa iti complice foarte mult viata.
Deci, alege framework-ul pe care il intelegi cel mai bine
-
- PHPRomania Supporter
- Mesaje: 29
- Membru din: Vin Iun 19, 2009 4:09 pm
- Localitate: Online
- Contact:
Re: Codeigniter vs Yii
Da am auzit si eu vb bune de laravel ...dar cand vine vb de joburi vad ca toata lumea cere simphony 2 sau zend 2 ...
Re: Codeigniter vs Yii
Daca ai ceva experienta cu un MVC si intelegi OOP recomand sa iti faci propria arhitectura.
De la 0, sau?
Si pot sa povestesc doua zile, sincer ambele site-uri pe care le-am refacut au fost scrise de programatori care nu inteleg nici cel mai elementar lucru cand vine vorba de mentalitatea OOP sau MVC, pur si simplu l-au folosit pentru ca aveau niste manageri care vroiau sa stie toti unde sa se uite cand modifica o liniuta de cod ca vezi-doamne fac mai multa treaba. Este complet gresit!
Faptul ca unora le este lene sa invete un framework, sau nu au cunostintele necesare sa-l inteleaga, nu inseamna ca acel framework nu este bun.
Eu le-am scris mysql_query() cum se face pentru ca ala tine un link spre o resursa temporara pe HDD, nu in RAM. Si o sa mearga si peste 3000 de ani.
FAIL!
http://ro1.php.net/manual/ro/function.mysql-query.php
Această extensie este dezaprobată începând cu PHP 5.5.0 și va fi eliminată în viitor. În locul ei trebuie utilizate extensiile MySQLi sau PDO_MySQL. Vedeți de asemenea ghidul MySQL: selectarea unei API și FAQ asociat pentru mai multe informații.
Care credeti ca este cel mai rapid si usor de folosit pentru aplicatii mari ?
http://www.techempower.com/benchmarks/ - pt cel mai rapid
Dupa cum au mai spus si altii, Laravel este un framework ok. Are componente din Symfony 2 si arhitectura dupa Codeigniter si functioneaza pe PHP 5.3.7+
Symfony 2 este de asemenea un framework bun cu o comunitate mare in spate.
Trebuie sa te uiti pe mai multe, sa vezi ce-ti convine. Poti sa te uiti si aici: http://fabien.potencier.org/article/50/ ... nts-part-1
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator