Последните няколко месеци имах възможността да работя с CodeIgniter. В някои отношения ми допадна, а в други не. Ще има хора, които ще се съгласят с мен, но също така ще има и такива, които няма да са.
Плюсовете не са много, но все пак е хубаво да се знаят. Един от тях е, че много хора ползват CodeIgniter. Това до някъде е страхотно, защото се изгражда едно наистина добро community. Ако имаш проблем – пишеш в някой форум и до пет минути си готов. Просто и лесно. Документацията наистина е страхотна. Богата, плътна, елементарна за разбиране. Документацията на CodeIgniter е за пример! Също така самият фреймуърк е доста лесен за учене и усвояване.
Минусите са наистина доста… първото и най-важното:
- CodeIgniter учи на лоши практики!
Като започнем от именуването на файловете и класовете и стигнем до извикването на View/Controller. Ето примерен код:
<?php class mytestclass { private $load = NULL; public function __construct() { parent::__construct(); $this->load = TRUE; } public function index() { $this->load->view('dashboard'); } } ?>
Идеята в този код е, че искам да покажа View. Проблемът обаче е, че съм декларирал свойство $load в __contruct-а и при линия 11 ще ми върне грешка, че не може да извика метод от non-object. Защо по дяволите това е направено така?! Поне в документацията им да бе описано, че не мога да презаписвам $this->load…
- Самият фреймуърк е суупер бавен. Кофти е написан… В много от нещата няма особен смисъл.
- Защо трябва в config-a да описвам кои библиотеки да ми зарежда автоматично и от къде той е сигурен, че ще ги използвам после?! Има толкова много механизми, които могат да бъдат приложени в този случай…
- Някой да ми обясни какъв е смисълът от т. нар. „Helpers“. Не, наистина, не виждам смисъл в тях…
- Имат изключително малоумен начин за съхраняване на сесии… Всичките данни се бутан в една бисквитка, която има имит 4KB… Ако се опиташ да ги надвишиш ще получиш някаква грешка 500… и до там. За да избягате от този случай, ползвайте БД. Как? Вижте в документацията.
- и последното нещо, за което в момента се сещам – защо по дяволите е писан на PHP5.1?!?!?!
Не го харесвам този фреймуърк! Някои неща не мога да разбера защо са направени така. Дано хората, които купят CodeIgniter да го оправят.