CodeIgniter kontroleri, usmjeravanje prikaza: naučite s primjerom aplikacije

U ovom vodiču ćete naučiti sljedeće teme.

  • Usmjeravanje – usmjeravanje je odgovorno za odgovaranje na URL zahtjeve. Usmjeravanje povezuje URL s unaprijed definiranim rutama. Ako tada nije pronađeno podudaranje rute, CodeIgniter izbacuje iznimku Stranica nije pronađena.
  • Kontroleri – rute su povezane s kontrolerima. Kontroleri spajaju modele i poglede zajedno. Zahtjev za podacima/poslovnom logikom iz modela i vraćanje rezultata u prezentaciji pogleda. Nakon što je URL usklađen s rutom, prosljeđuje se javnoj funkciji kontrolera. Ova funkcija komunicira s izvorom podataka, poslovnom logikom i vraća pogled koji prikazuje rezultate.
  • Posjeta – pogledi su odgovorni za prezentaciju. Pogled je obično kombinacija HTML-a, CSS-a i JavaSkripta. Ovo je dio koji je odgovoran za prikazivanje web stranice korisniku. Tipično, prikazani podaci obično se dohvaćaju iz baze podataka ili bilo kojeg drugog dostupnog izvora podataka.

Kako stvoriti novi CodeIgniter projekt

Koristit ćemo Composer za izradu novog projekta. Koristit ću PHP ugrađeni poslužitelj, tako da nije potrebno imati dodatni softver kao što je apaš. U ovom vodiču koristimo Windows operacijski sustav. Stoga smo stvorili mapu Sites na pogonu C. Možete koristiti bilo koji direktorij koji vam odgovara.

Otvorite naredbeni redak/terminal i pokrenite sljedeću naredbu

cd C:\Sites

Sada ćemo izraditi CodeIgniter projekt koristeći Composer. Pokrenite sljedeću naredbu

composer create-project CodeIgniter/framework ci-app

OVDJE,

  • Gornja naredba stvara novi CodeIgniter projekt verzije 3 koristeći najnovije stabilno izdanje, tj. 3.1.9 u ci-aplikaciji direktorija.

Kada se gornja naredba završi, trebali biste moći dobiti rezultate slične sljedećima u terminalu

Napravite novi CodeIgniter projekt

Pokrenite sljedeću naredbu za pregledavanje novostvorenog direktorija projekta ci-app

cd ci-app

Pokrenimo sada PHP ugrađeni web poslužitelj

 php -S localhost:3000

OVDJE,

  • Gornja naredba pokreće ugrađeni PHP poslužitelj koji radi na portu 3000.

Otvorite web preglednik i pregledajte sljedeći URL: http://localhost:3000/

Dobit ćete sljedeću stranicu

Napravite novi CodeIgniter projekt

Ako vidite gornju stranicu, čestitamo, uspješno ste instalirali CodeIgniter.

Kao što možete pročitati na gornjoj web stranici, gore prikazanu stranicu prikazuje prikaz koji se nalazi u aplikaciji/views/welcome_message.php, a odgovorni kontroler nalazi se u aplikaciji/kontroleri/Welcome.php

CodeIgniter usmjeravanje

Za sada naša aplikacija ima samo jedan URL koji je početna stranica. U ovom ćemo odjeljku prilagoditi početni odjeljak. Napravit ćemo neke nove URL-ove koji će odgovoriti na različite zahtjeve.

Počnimo s rutom početne stranice

Otvorite datoteku s rutama kako je naznačeno donjom stazom

application/config/routes.php

Trebali biste moći vidjeti sljedeći sadržaj

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

OVDJE,

  • $route['default_controller'] = 'dobrodošli'; definira zadani kontroler koji odgovara na URI zahtjeve
  • $route['404_override'] = ”; ova vam ruta omogućuje definiranje prilagođene rute za pogreške 404. Pogreška 404 javlja se kada stranica nije pronađena. CodeIgniter ima zadani rukovatelj greškom, ali možete definirati vlastiti ako želite.
  • $route['translate_uri_dashes'] = FALSE; ova vam opcija omogućuje prevođenje crtica u podvlake. O ovoj opciji ćemo govoriti kada budemo gledali kako rute rade u CodeIgniteru.

Pogledajmo sada metodu kontrolera koja je odgovorna za prikaz početne stranice koju smo vidjeli kada smo otvorili URL http://localhost:3000/ u web pregledniku.

Otvorite sljedeću datoteku

application/controllers/Welcome.php

Trebali biste moći vidjeti sljedeći kod

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

	public function index()
	{
		$this->load->view('welcome_message');
	}
}

OVDJE,

  • Definirano ('BASEPATH') OR exit('Nije dopušten izravan pristup skripti'); štiti od izravnog pristupa klasi kontrolera bez prolaska kroz datoteku index.php. Zapamtite, u MVC paradigmi svi zahtjevi imaju jednu ulaznu točku, a za CodeIgniter, njen index.php. Ovaj kod blokira sve zahtjeve koji ne dolaze kroz index.php
  • klasa Welcome extends CI_Controller {…} definira klasu Welcome koja proširuje nadređenu klasu CI_Controller
  • javna funkcija index() definira javnu funkciju koja se poziva prema zadanim postavkama kada otvorite početnu stranicu
  • $this->load->view('welcome_message'); ovaj redak učitava prikaz Welcome_message. Datoteka Welcome_message nalazi se u direktoriju application/views/welcome_message.php

Do sada smo samo istraživali što dolazi iz kutije s CodeIgniterom, pokušajmo sada napraviti neke promjene. Napravit ćemo našu početnu stranicu i zamijeniti zadanu stranicu

Napravite novu datoteku u aplikaciji/views/home.php

Dodajte sljedeći kod u home.php

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Hello CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    CodeIgniter Hello World
                </h1>
            </div>
        </section>
    </body>
</html>

OVDJE,

Gornji HTML kod učitava okvir Burma SSS i font iz CDN mreže stvara vrlo osnovni HTML dokument. Primjenjuje vrlo jednostavno CSS pravilo iz Burma CSS okvira.

Otvorite sljedeći URL u svom pregledniku: http://localhost:3000/

Trebali biste moći vidjeti sljedeće

CodeIgniter usmjeravanje

Odlično, upravo smo uspješno izmijenili početnu stranicu. Idemo dalje, definirajmo našu rutu. Pretpostavimo da naša aplikacija također mora moći prikazati stranicu o nama.

Stvorite rutu

Otvorite datoteku ruta application/config.routes.php

Dodajte sljedeću rutu

$route['about-us'] = 'welcome/about_us';

OVDJE,

  • Kada posjetitelj posjeti URL /about-us, upućujemo CodeIgniter da potraži upravljačku dobrodošlicu i izvrši metodu about_us.

Stvorite kontroler

Definirajmo sada metodu kontrolera o nama

Otvorite application/controllers/Welcome.php

Dodajte sljedeću metodu

public function about_us(){
            $this->load->view('about_us');
        }

OVDJE,

  • Gornji kod definira funkciju about_us i učitava prikaz about_us.

Stvorite pogled

Kreirajmo sada pogled koji smo upravo spomenuli u gornjem odjeljku

Napravite novu datoteku about_us.php u aplikaciji/views/about_us.php

Dodajte sljedeći kod

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>About CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    About us yap...                
                </h1>
            </div>
        </section>
    </body>
</html>

Spremni smo, otvorite sljedeći URL u svom web pregledniku: http://localhost:3000/index.php/about-us

Vidjet ćete sljedeću stranicu

Stvorite prikaz u CodeIgniteru

Ako možete vidjeti gornju stranicu, čestitamo, uspješno ste izradili jednostavnu aplikaciju u CodeIgniteru.

rezime

U ovom vodiču pokrili smo tri (3) glavne komponente koje čine aplikaciju CodeIgniter. Pogledali smo rute i kako ih definirati, kontrolere i kako stvoriti metode koje odgovaraju na zahtjeve rute i stvorili jednostavne poglede koji se vraćaju korisnicima kada zatraže resurs.