Codeigniter Model-View-Controll


Codeigniter MVC truktúra áttekintéseCodeIgniter 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.

MVC mappák Codeigniter-ben

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.

  1. /* There are two reserved routes:
  2. |
  3. |    $route['default_controller'] = 'welcome';
  4. |
  5. | This route indicates which controller class should be loaded if the
  6. | URI contains no data. In the above example, the "welcome" class
  7. | would be loaded.
  8.  
  9. */
  10.  
  11. $route['default_controller'] = "welcome";

 

URL felépítése:

http://localhost/install-test/index.php/[KontrollerNeve]/[Metódus]/[Param]/[Param]

 

Wellcome üzenet megtekintése

 

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'.

  1. <h1>Welcome to CodeIgniter!</h1>
  2.  
  3. <p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
  4.  
  5. <p>If you would like to edit this page you'll find it located at:</p>
  6. <code>system/application/views/welcome_message.php</code>
  7.  
  8. <p>The corresponding controller for this page is found at:</p>
  9. <code>system/application/controllers/welcome.php</code>
  10.  
  11. <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>
  12.  
  13.  
  14. <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
 

  1. <?php
  2. //http://localhost/install-test/index.php/welcome/hello_vilag
  3. class Welcome extends Controller {
  4.  
  5.     function Welcome()
  6.     {
  7.         parent::Controller();   
  8.     }
  9.    
  10.     function index()
  11.     {
  12.         $this->load->view('welcome_message');
  13.     }
  14.  
  15.     function hello_vilag(){
  16.         echo "Hello CodeIgniter világ!";
  17.     }
  18. }
  19.  
  20. /* End of file welcome.php */
  21. /* 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.

  1. <?php
  2. //http://localhost/install-test/index.php/lorem
  3. class Lorem extends Controller {
  4.  
  5.     function Lorem()
  6.     {
  7.         parent::Controller();   
  8.     }
  9.    
  10.     function index()
  11.     {
  12.         echo "ez a lorem controller";
  13.     }
  14.    
  15. }
  16.  
  17. /* End of file welcome.php */
  18. /* 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.

  1. <?php
  2.  
  3. class Lorem extends Controller {
  4.  
  5.     function Lorem()
  6.     {
  7.         parent::Controller();   
  8.     }
  9.    
  10.     //http://localhost/install-test/index.php/lorem
  11.     function index()
  12.     {
  13.         echo "ez a lorem controller";
  14.     }
  15.    
  16.     //paraméter áttadás
  17.     //http://localhost/install-test/index.php/lorem/ipsum/10/hello
  18.     function ipsum($id=0, $nev=""){
  19.         echo "lorem controller / ipsum Metódus / id: {$id} / Név: {$nev}";
  20.     }
  21.    
  22. }
  23.  
  24. /* End of file welcome.php */
  25. /* Location: ./system/application/controllers/lorem.php */


Codeigniter, MVC codeigniter, mvc








Hozzászólás beküldése:


http://domain.tld (nofollow)
 ____    __    _   _  ____  ____  ____ 
(  _ \  /__\  ( )_( )(_  _)(_  _)( ___)
 )   / /(__)\  ) _ (  _)(_   )(   )__) 
(_)\_)(__)(__)(_) (_)(____) (__) (____)



 
 
 
 
Powered By: PHP, Smarty, MySQL, CodeIgniter, jQuery, ArtH2O