CodeIgniter – malo drugačiji PHP Framework

CodeIgniter je jedan od brojnih PHP frameworka. No razlikuje se od ostalih po mnogo stvari i zbog toga je jedan od najjednostavnijih frameworka namijenjenih za PHP.

CodeIgniter ukratko

Svatko tko je probao CodeIgniter, svidio mu se odmah. Tu se nema što učiti, zahvaljujući fantastičnom User Guide-u koji sve objašnjava tako da bi i ne-programer iz navedenih primjera nešto znao složiti.

Nema početne zbunjenosti konfiguracijom, jer je jednostavna, nije potrebna baza podataka za svaki kontroler, trebali je vi ili ne (kao što je naprimjer u CakePHP-u).

CodeIgniter se zasniva na MVC principu, gdje imamo modele, templateove (tzv. view) i kontrolere. U ovom principu, na kojem je zasnovana većina frameworka, model služi za bilo kakvu komunikaciju sa bazom podataka, view služi za prikaz podataka, a u kontroleru se nalazi sva programska logika, te kontroler povezuje podatke iz modela i prikazuje ih u viewu.

Sloboda kodiranja

CodeIgniter ne zahtijeva korištenje naredbenog retka (konzole) kao većina frameworka što pridonosi jednostavnosti korištenja. CodeIgniter vam također pruža svu slobodu u kodiranju i imenovanju funkcija, te nema nekih ograničenja kao što je da, ukoliko želite da vam se kontroler zove User, morate ga nazvati User_Controller, a njegov model mora se zvati Users (množina).

Nažalost, nedostatak tih konvencija, nema automatskog mapiranja modela i viewa kontroleru, tj. morate ih sami definirati i pozvati

Ostalo

CodeIgniter dolazi sa hrpom biblioteka i helpera. Jedne od najvažnijih su klasa za baze podataka, klasa za validaciju formi te session klasa.

Nažalost, dev-team CodeIgnitera ne želi u osnovnu instalaciju ubaciti ACL (autentifikacija) klasu i ORM klasu. Naravno, postoje u obliku dodatnih biblioteka, ali o njima se ne brine niti ih programira EllisLab. Recimo, ja bih htio da CI dolazi sa ACL-om, a ORM mi nije potreban.

Sve u svemu, CI je jedan od najzanimljivijih frameworka na tržištu, a sve njegove mogućnosti otkrit ćete ako proučite User Guide.

Ako vam se post čini prekratak, namjena mi nije bila upoznavati vas sa radom i funkcioniranjem frameworka, već samo vas uvesti i zainteresirati za njega. Još jednom, probajte ga, a ako zapnete, uvijek imate User Guide i CodeIgniter Forum.

Život web dizajnera

Ovaj post inspiriran je jednim upitom na Google s kojeg je došao posjet na moj blog. Upit glasi: “Život web dizajnera”.

Život web dizajnera… hmmm… je isti kao i život svih ostalih ljudi. Osim svega vezanog uz web :). Život web dizajnera već je opisan u tekstovima “Budućnost web dizajna”, a uglavnom se sve svodi na konstantno i cijeloživotno učenje novih tehnologija, jezika i tehnika ili novih načina primjene starih tehnologija.

Sada ću ukratko dati i primjere za to:

Kao web dizajneri stalno moramo učiti nove tehnologije. U prvom procesu učenja savladamo HTML. I mislimo, to je to. Radimo dizajn s tablicama, bez pomisli na CSS. Onda smo ubrzo “prisiljeni” naučiti i CSS (nova tehnologija). Nakon što smo naučili definirati CSSom fontove, backgrounde i ostale stvari moramo odbaciti primjenu HTML-a za izradu dizajna i naučiti primjeniti CSS za dizajn stranice bez tablica (novi način primjene tehnologije). Neki će tu stati. Ali onda ćete ubrzo shvatiti i da bez Photoshopa nema ništa – inače imate jednostavne plohe. Ako ništa, neki barem nauče napraviti gradient i staviti background-repeat u CSS-u pa da nije sve jednobojno. No, Photoshop treba savladati (nova tehnologija).

E sad, naučili smo osnove. Pazite, koliko već znamo, a to su samo osnove. Dalje, trebali bismo naučiti i JavaScript (opet nova tehnologija). Usput ćemo naučiti i jQuery za Javascript, ako zbog nečega, onda barem zbog onih animacija (nije komplicirano). Oni koji više idu na back-end trebali bi naučiti i AJAX (što je nova primjena stare tehnologije). Dakako, da ne zaboravimo, trebalo bi znati i napraviti osnovnu strukturu RSS XML dokumenta.

Ukoliko biste željeli raditi dinamičke stranice trebat ćete naučiti PHP. Vjerojatno ćete željeti odvojiti dizajn od logike, pa će vam trebati i neki template sustav (opet ponovno učenje). Da bi vaša stranica bila još dinamičnija tu vam treba i MySQL (opet nova tehnologija). Trebalo bi naučiti i povezati PHP sa MySQL-om (opet nova primjena postojeće tehnologije).

I kako pišem ovaj tekst zaboravio sam uz HTML spomenuti i optimizaciju za 500 browsera, nekoliko operacijskih sustava, pobrinuti se da site dobro izgleda bez CSS-a, dodati poseban CSS file za print, napraviti verziju za iPhone (dobro, ovo nije obavezno, ali lijepo je), također site treba barem nekako funkcionirati i bez Flasha i JavaScripta.

Optimizacija za 500 browsera i nije baš optimizacija za 500, ali ima ih. I još na različitim sustavima. Ipak, najveće probleme stvara IE6. Ostali su donekle podnošljivi.

Eh, sad, svi koji ovdje nabrojane tehnike znate činit će se kako ne morate ništa više učiti. Ali, pripremajte se za CSS 3 i HTML 5. Da budete spremni kada se budu šire koristili.

Niti jedno zanimanje nije toliko dinamično i zanimljivo kao što je web dizajn. I što je najbolje, opstaju samo oni koji stvarno vole web dizajn, jer ostali ne mogu pratiti sve trendove ako im je to opterećenje. ;)