Cat de actual este codeigniter?

Am vazut diverse comentarii, pareri pe diferite grupuri de programare de pe facebook si nu numai la adresa lui Codeigniter cum ca nu ar mai fi de actualitate fara sa spuna exact pe ce criteri sa ajuns la asa concluzie. Acum intreb pe cei cu experienta chiar asa sa fie?

1 Like

Cred că argumentul conform căruia nu poți folosi CI cu versiuni mai noi de 5.2 ale PHP ar trebui să fie suficient…

https://www.quora.com/Laravel-vs-CodeIgniter-which-one-is-recommended

CI 3.0 e PHP 5.4 minim.

CI 2.x nu recomand din principalul motiv mentionat de @iamntz.

Din pacate nu am lucrat cu CI 3.0 si nu ma pot pronunta.

Insemana ca pentru mine ramane varianta de invatare Laravel, Slim sau de la zero.

Cred că orice framework poate fi folosit cu succes pentru crud-ish apps/sites, sau poate fi folosit cu succes la aplicații gen to-do, blog pentru a înțelege la nivel primar ce oferă fiecare în parte.
Dar dacă aplicațiile sunt ceva mai complexe, cred că mai întâi ar trebui acordat un timp pentru analiza/modelling/arhitectură/comunicare și numai după ce se întelege problema să se treaca la scris cod, urmând ca după aceia să vedem ce framework php sau baza de date sau altceva ce ține de infrastructură vom alege.

Eu recomand intotdeauna o curba de invatare graduala. Laravel o fi el cel mai cool kid on the block, dar are multe minusuri. Prea multe ca sa ma faca sa il folosesc in productie.

Am experimentat cu succes pe mai multi colegi urmatoarea succesiune:

  • PHP gol care indeplineste functionalitatea ceruta. Lucrul cu bazele de date, fisiere, etc, trebuie deprins intai fara intermediari din frameworks, pentru a putea intelege ce se intampla in spate. Macar un prim proiect in care sa ne lovim cu capul de pragul de sus, sa stim ca e acolo.
  • CodeIgniter e prima chestie la nivel de framework pe care o recomand. Am lucrat cu el inca dinainte sa fie 1.0, si il recomand in continuare pentru ca are o documentatie buna in care se poate crea premisa pentru intelegerea unor concepte superioare, astfel permitand celui care invata sa nu fie dependent de mentorship. Singura chestie care NU trebuie retinuta de acolo e Active Record (daca nu cumva avem noroc si l-au scos in 3.0), deoarece modelarea prea ruby-on-rails duce la o intelegere gresita a notiunii de “Model” din MVC, cu repercusiuni majore. Un mic proiect de tip CMS e perfect pentru a invata documentatia, conceptele de request-controller-response, librarii externe, alte dependinte, etc.
  • Zend Framework sau Symfony. NU Laravel care e syntactic sugar f periculos pt cei care invata. Da, sunt multe tutoriale Laravel. Am avut nenorocul sa citesc cod Laravel. Nu recomand.
  • Microframeworkurile au piata lor. Daca este nevoie atat de componente frontend cat si backend, ele nu sunt potrivite. Daca in schimb scrieti un API, faceti doar backend, aveti nevoie de performanta mare, atunci da.
10 Likes

CodeIgniter e FOARTE usor de invatat, extraordinar de usor as spune. @iamntz are dreptate, stick to CI 3 daca vrei sa faci ceva nou in el, are multe imbunatatiri pe partea de sesiuni (securitate and shit). Acum vreo 4 ani dezvoltam un mini CMS in CI, si acum vreo saptamana l-am portat in CI 3, fara prea multe modificari (probabil ca mai sunt chestii care nu merg, dar na, cand o fi timp si de el, o fi. Nu dau link, il gasesti prin githubul meu daca est curios.

Acum na, CI e ok, am fost nevoit sa lucrez la un moment dat cu Yii, mi s-a parut groaznic (nu detaliez, ca nici macat nu-mi mai aduc aminte ce era asa groaznic, dar era de rau, si era un monolit de aplicatie de cateva sute de mega (doar cod sursa, fara asset-uri) facut intr-o structura complet tampita care m-a facut la momentul respectiv sa-mi pierd increderea in MVC (de fapt, structura era mai mult un DASP, Doamne Apara Si Pazeste).

TL;DR use CodeIgniter, e bun. Sau Kohana, e un fork mai special de CI.

LE: gramatica, mama ei.

3 Likes

Am aruncat un ochi peste o aplicație scrisă în Kohana la un moment dat, dar mi s-a părut oribil. Bine, era făcută de niște băieți și nu știu cât de bine scriseseră ei codul acolo, dar, venind de la CI, nu am înțeles mare lucru (nici nu m-am chinuit :smiley:)

Recomand oricui încearcă să folosească CI să se uite peste GitHub - jamierumbelow/codeigniter-base-model: ⛔️DEPRECATED CodeIgniter base CRUD model to remove repetition and increase productivity, eventual un fork mai actualizat, că sunt câteva chiar OK și nici nu e greu să adăugați funcționalitățile de care mai aveți nevoie.

Heh, I miss the days writing stuff in CodeIgniter.

:thumbsup:

Care to expand?

3 Likes

Inca se lucreaza la CodeIgniter si este un framework bun in contextul potrivit. Eu am lucrat cel mai mult in CI si inca lucrez si ultima versiune merge bine si pe PHP7(din cate am auzit, urmeaza sa experiementez), deci nu cred ca e cazul sa ne luam neaparat de versiuni de PHP. Institutul care se ocupa de el acuma face treaba si progreseaza, deci nu e un proiect mort.

Legat de comparatia intre framework-uri, eu cred ca nu asta conteaza cel mai mult. Important e sa te gandesti bine la ce proiect vrei sa faci, si in functie de asta sa iti alegi un tool care e cel mai potrivit cu proiectul tau, skill-urile tale, timpul de alocat invatarii lucrurilor noi, etc.

Si daca tot vrei sa inveti ceva, din propria experienta, iti recomand sa inveti bazele foarte bine. Lucrurile astea o sa te ajute mai mult(pe termen lung) decat orice framework care l-ai invata ca sa stii PHP.

2 Likes

Eu as defini actual un framework pentru care :

  • exista tutoriale gen backend framework (codeigniter) + vue.js/react sau mithril.js
  • exista compatibilitate cu HHVM sau HippyVM in proportie de 100%
  • exista proiecte pe github utilizand toate api-urile populare

Codeigniter nu indeplineste prima criterie, in 2016 majoritatea aplicatiilor web trebuie sa fie reactive daca chiar ne numim programatori, nu avem ce face cu framework-uri care folosesc jquery pentru ajax fiindca sunt mult prea mari.
Pentru mine HHVM e extrem de important fiindca e singurul motiv pentru care fiecare client imi ramane cu gura cascata cand vede cum ii incarca site-urile. Laravel si Symfony stiu sigur ca n-au nici o problema, Codeigniter are niste magii pe acolo care s-ar putea sa fie problematice.
Cat despre API-uri sunt sigur ca Laravel sau Symfony il bat 3:1 pe github

5 Likes

Da, poti sa ne spui ce ai impotriva ActiveRecord?

Tind sa cred ca e relativa treaba, din moment ce eu as recomanda oricand Yii2, in loc de altceva, pentru ca am lucrat multi ani cu el, tot asa de la versiunea 1, iar experienta m-a invatat ca totul e roz daca stii cum sa-l folosesti si nu incerci sa incalci principiile pe care e el bazat.

Zic eu ca sunt in cunostinta de cauza, tinand cont ca am folosit CI in tinerete, iar acum mi-a fost bagat pe gat si Lumen (Laravel stripped out), ori nu pot sa zic ca reinventeaza roata sau se face ceva mai bine/rapid/curat, din contra.

1 Like

Sunt de parere ca ar trebuii sa facem un top 5 Framework-uri , sa facem un poll si tragem o linie cu avantaje si dezavantaje:
urmatoarele sunt pe lista in mintea mea :
Laravel ,
Codeigniter(Amandoua cred ca is foarte populare, bune pentru incepatori probabil insa proaste pentru long term banuiesc)
Yii 2 framework ,complex dar intortocheat
Ar mai fi: Symphony 2 si Zend Framework stiu ca lista cred ca ajunge undeva la 20 framework uri cunoscute, dar un punct de pleacare.

2 Likes

Daca doreste unul dintre admini sa faca asta ar fi o treaba buna.

1 Like

Eu folosesc CI cu PHP7 si merge perfect (crestere performanta in unele cazuri de chiar 3 ori mai mare pentru acelasi cod)
CI2 poate face probleme cu PHP7 (rezolvabile destul de rapid), dar CI3 merge out-of-the-box cu PHP7.

Am facut upgrade foarte usor la un proiect pe CI2 spre CI3.

Lucrez aproape zilnic de ~2 ani cu CI si sincer spun ca mi se pare extraordinar.

E mic ca si spatiu (chiar si ca nr de fisiere), si mi se pare foarte usor de invatat.
Nu stiu cum le-ar fi incepatorilor sa-l invete, dar odata invatat usureaza munca foarte mult (foarte foarte mult :smiley: ).

Ma incapatanez sa invat Laravel pe cont propriu ca sa-l pot folosi in productie si la munca, dar pana acum Laravel vs. Codeigniter, mai ales pentru incepatori in MVC, Codeigniter castiga de fiecare data.
Mai nou beneficiaza de multe notiuni noi (gen migrations, code generators, namespaces, acel ‘php artisan’ din terminal, etc).
Ok, poate nu by default, dar se gasesc fork-uri destul de bune.

Cel mai mare dezavantaj pe care l-am vazut e ca nu se gasesc atat de multe module/packages ca pentru Laravel/WP.
Tocmai de aceea vreau sa “migrez” spre Laravel :slight_smile:
Dar pana atunci CI e bestial :slight_smile:

Eu folosesc aceste 2 “fork-uri” de CI3 care adauga ce-i mai important si-i lipseste lui CI, dar care pastreaza simplitatea, usurinta si performanta CI-ului. Ambele sunt pe structura HMVC.

GitHub - lonnieezell/Bonfire: Jumpstart your CodeIgniter web applications with a modular, HMVC-ready, backend. // are code generators, are un admin area micut care uneori e folositor, si daca nu e, nici o problema, puterea lui Bonfire vine din modulele cu care vine preinstalat.
GitHub - ci-bonfire/Sprint: A lightweight, modern addition to CodeIgniter 3. The heart of Bonfire Next. // are acel utilitar gen artisan, are namespaces, dar per total nu-i consider la fel de bun ca Bonfire, tocmai de aceea nu-l folosesc.

CI ‘chel’ nu-mi place de nici o culoare. Bonfire e bestial pentru orice proiect nou. I se creeaza o tema noua foarte usor (sau i se implementeaza una luata de pe wrapbootstrap), si se incepe lucrul la modulele proiectului… (poate fi folosit si in afara modulelor, ca si app).
Ai librarii, ai third_parties (unde pui chestii gen sdk-uri), poti chema dintr-un controller o metoda din alt controller, sau o metoda din cate librarii/models vrei.
Poti seta diferite teme pentru diferite controllere, poti face un controller ajax-only sau post-only, si multe altele …

Pe final:

CodeIgniter NU e de actualitate daca te intereseaza sa gasesti de-a gata mii de module (specifice platformei!) pe care le iei cu copy paste si gata treaba.
In schimb, CodeIgniter E de actualitate daca te intereseaza sa folosesti notiuni actuale (gen Migrations, Routes, Generators, Composer, etc) si e de actualitate dpdv al compatibilitatii cu ultimele versiuni de php (la ora actuala CI 3.0.4 functioneaza out-of-the-box cu PHP 7.0.4 si 7.0.0 (pe altele n-am testat intre cele 2) )

5 Likes

probabil ca @tekkie e fană DataMapper avand in vedere ca e anti Active Record.

1 Like