Codeigniter Model-View-Controll
CodeIgniter Model - View - Controller arhitectúrát megvalósító keretrendszer. A leírás ezen részében ezekkel a mappákkal és feladatukkal fogunk megismerkedni.Megnézzük, miért és hogyan jelenik meg az üdvözlő üzenet és hogyan tudod megváltozatni azt.
A bejegyzésből az is kiderül miért is olyan egyszerű fejleszteni Codeigniter Frameworkben.
A system/application mappába található:
- controllers: A model és view réteg összekötésért felelős.
Ez a réteg kapja meg pl.: egy esemény paramétereit kiértékeled és átfordítód model és view-nak megfelelő adatokra. - models: üzleti logika. pl.: adatbázisból érkező adatok
- views: megjelenítés, prezentációt. pl.: felcuccolod rá az adatokat és megjeleníted
Ennek a fejlesztési architektúrának köszönhetően az üzleti logika elválik a megjelenítéstől így a kód újrafelhasználhatóvá válik. De csoport munkánál sem utolsó szempont.

Szerencsére ezt a nagy terhet, amivel a különböző rétegeket külön kéne választani, már konyhakészen kapjuk és még a rendszer felépítéséhez használatos mappa struktúrát sem kell kitalálni.
Nézzük a konkrét példát ami egyenlőre a Wellcome message:
Teszt linkek:
http://localhost/install-test/index.php/welcom
http://localhost/install-test/
Két különböző link mégis ugyan az az oldal jön be?
A kérdésre a válasz a routes.php-ben van, ebben a fájlban megadhatjuk az alapértelmezett controller nevét és még egy csomó hasznos dolgot, de erről majd később.
/* There are two reserved routes: | | $route['default_controller'] = 'welcome'; | | This route indicates which controller class should be loaded if the | URI contains no data. In the above example, the "welcome" class | would be loaded. */ $route['default_controller'] = "welcome";
URL felépítése:
http://localhost/install-test/index.php/[KontrollerNeve]/[Metódus]/[Param]/[Param]

Mikor elindítod a keretrendszer akkor az alapértelmezett controller kapja meg az verzérlést (mivel a config/routes.php-ben ez van megadva) és mivel nincs metódus paraméter az URL-ben ezért az alapértelemezett az index() fog lefutni, ami kirakja a view/welcome_message.php. Ami egy egyszerű PHP, HTML 'zagyvalék'.
<h1>Welcome to CodeIgniter!</h1> <p>The page you are looking at is being generated dynamically by CodeIgniter.</p> <p>If you would like to edit this page you'll find it located at:</p> <code>system/application/views/welcome_message.php</code> <p>The corresponding controller for this page is found at:</p> <code>system/application/controllers/welcome.php</code> <p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p> <p><br />Page rendered in {elapsed_time} seconds</p>
Módosítsuk a controllers/welcome.php controllert, egy hello_vilag() metódussal: majd hívd meg: http://localhost/install-test/index.php/welcome/hello_vilag
<?php //http://localhost/install-test/index.php/welcome/hello_vilag class Welcome extends Controller { function Welcome() { parent::Controller(); } function index() { $this->load->view('welcome_message'); } function hello_vilag(){ echo "Hello CodeIgniter világ!"; } } /* End of file welcome.php */ /* Location: ./system/application/controllers/welcome.php */
Új controller létrehozása aminek a neve lorem:
Az application/controllers/ mappába hozzál létre egy lorem.php nevű fájlt majd másold bele az itt láthatókat. Hasonlítsd össze a welcome.php-vel és vedd észre az azonosággokat.
<?php //http://localhost/install-test/index.php/lorem class Lorem extends Controller { function Lorem() { parent::Controller(); } function index() { echo "ez a lorem controller"; } } /* End of file welcome.php */ /* Location: ./system/application/controllers/lorem.php */
Paraméter áttadás Controllernek.
Ehhez felveszünk egy új metódust a lorem controllerbe ipsum néven, amihez már parméterek is tartoznak, ipsum($id, $nev). A keretrendszerben ez is, mint minden nagyon ki van találva. az urlben: /kontroller/metódus/param1/param2 a metódus utáni részeket beteszi sorban a változódiba.
<?php class Lorem extends Controller { function Lorem() { parent::Controller(); } //http://localhost/install-test/index.php/lorem function index() { echo "ez a lorem controller"; } //paraméter áttadás //http://localhost/install-test/index.php/lorem/ipsum/10/hello function ipsum($id=0, $nev=""){ echo "lorem controller / ipsum Metódus / id: {$id} / Név: {$nev}"; } } /* End of file welcome.php */ /* Location: ./system/application/controllers/lorem.php */