NetHq Blog


A rossz legjobb kritikája az, ha megmutatjuk, hogyan kell jobban csinálni.

CodeIgniter alapok - Az első programunk

Nightvis, 2012.07.09 20:53
Váratott magára de megkérdezett. Most elkészítjük az első codeigniter framework alapokon nyugvó alkalmazásunkat.

Az első két cikkben foglalkoztunk a codeigniter felépítésével, telepítésével és a rendszer alapjaival. Eljött az idő hogy, készítsünk is valami hasznosat a rendszerben.  Nézzük is miről lesz szó.

Előszó

Fontos megemlíteni hogy, a jelenleg elérhető legfrissebb codeigniter verziót fogjuk most használni, ami a 2.1.2-es változat. A mostani minta programhoz nem lesz szükségünk adatbázisra, így ez a rész a következő cikkbe csúszik át. Jelen példaprogramunk áttekint pár codeigniter referenciát és kódolás stílust.

Helló világ

A jól megszokott helló világ előállítása az első lépésünk. Vegyük készhez a nyers codeigniter-t és töröljük ki a controller mappa illetve a view mappa minden állományát. Ezek után irány a config/routes.php és a default controllernek adjuk egy új értéket, ami jelen esetben a kezdolap lesz. Ez annyit jelent hogy, minden futtatás alkalmával ha az uri controllerekre vonatkozó része üres, akkor ezt a modult fogja betölteni. Példa: www.example.hu esetén. Most hogy, megmondtuk a rendszerünknek mit is keressen, hozzuk létre. 

A controller mappába létre kell hozni egy kezdolap.php állományt, majd a view mappába hozzunk létre egy kezdolap mappát és abban egy index.php-t. Ugyan nem lenne szükséges mappába pakolni a view állományát, de a jobb tagolás miatt mi most megtesszük. Ezek után nézzük csak mit is tartalmaz a kezdolap controller és a kezdolap view.

Kezdőlap controller

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Kezdolap extends CI_Controller {public function index() {$data['welcome'] = 'HELLO VILÁG';$this->load->view('kezdolap/index',$data);}}

 

Kezdőlap View

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Kezdőlap</title></head><body><?php echo $welcome;?></body></html>

 

Értelmezzünk

 Nézzük először a controllert.  Mint láthatjuk a controller tartalmaz egy osztályt. Az osztály neve megegyezik a controller fájl nevével. Minden controllert a codeigniter controller osztályából származtatunk. Az oszályon belül természetesen metódusokat találunk. Az index metódusok alapértelmezetten futnak le, így most ebbe raktuk be a controller parancsokat.  Létrehoztunk egy data tömböt, amibe beleraktuk a helló világ stringet. Ezek után már nincs is más dolgunk mint ezt az adatot elküldeni a view felé, amit a load->view paranccsal tehetünk meg. Jelen példánkban a data tömb kerül elküldésre, vagy is lehetőségünk van több elem egyidejű küldésére is.

Irány a view fájl megvizsgálása.  Mint láthatjuk nincs benne sok minden, így egyszerű értelmezni. Egyszerűen kiíratjuk a welcome változó értéket. Ez a változó az adatfolyam során jött létre, amikor a codeigniter kicsomagolta a data tömböt. 

Nézzünk egy újabb példát

A második controllerünk tartalma az alábbi:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Kezdolap extends CI_Controller {public function index() {$data['welcome'] = 'HELLO VILÁG';$data['header'] = 'header elemek';$data['footer'] = 'footer elemek';$this->load->view('kezdolap/index',$data);}}

 

A második view tartalma ehhez mérten:

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Kezdőlap</title></head><body><?php echo $header.'<br/>';echo $welcome.'<br/>';echo $footer.'<br/>';?></body></html>

 

Észrevehetjük tehát hogy,a data tömbünk jelenleg több elemet is tartalmaz és ezeket a view-ban fel is használjuk. Vessünk egy pillantást a böngésző url-re. A mostani példánál ez hasonló képet kell hogy mutasson.

http://localhost/index.php/kezdolap/

Miért is fontos ez most nekünk? Már is meglátjátok és egyben azt is hogy, lehetőségek egész tárháza pihen a kezeink alatt.

Aloldal az oldalon belül

A legtöbb weboldalnál előkerül az aloldalak lehetősége. Nem nagy elvárás ez így a codeigniter-ben is gyorsan meg tudjuk oldani a problémát. De nézzük is miről van szó. Létezik már nekünk a kezdolap controller a hozzá tartozó view fájlal. Szeretnénk azonban egy a kezdolaphoz kapcsolód aloldal létrehozását.

http://localhost/index.php/kezdolap/aloldal

A kezdolap controller az alábbiak szerint fog alakulni:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Kezdolap extends CI_Controller {public function index() {$data['welcome'] = 'HELLO VILÁG';$data['header'] = 'header elemek';$data['footer'] = 'footer elemek';$this->load->view('kezdolap/index',$data);}public function aloldal() {$data['content'] = 'aloldal vagyok';$this->load->view('kezdolap/aloldal',$data);}}

 

Most vegyük górcső alá a view mappánkat. Van nekünk egy kezdolap mappánk és abban egy index.php view állományunk. Hozzunk létre mellé egy aloldal.php fájlt és abban irassuk ki a content változót.

<?php echo $content; ?>

 

Ezzel elértük amit szerettünk volna, vagy is van egy aloldalunk a kezdolap controlleren belül. Ezt persze csak szemléletes példa volt, de már talán jobban érti mindenki hogy, miért érdemes mindent a lehető legjobban tagolni, például a view elemeket.

Összegzés

Most már tudjuk hogyan hozzunk létre controllereket és hozzá tartozó nézeteket. Tudunk aloldalakt létrehozni és értékeket átadni. Mi hiányzik még egy rendes web alkalmazás esetében? Természetesen az adatbázis műveletek. A következő cikkben a codeigniter model részével fogunk foglalkozni, illetve elkészítünk pár dinamikus leké

Tartalom közösségi megosztása: