CodeIgniteri kontrollerid, vaadete marsruutimine: õppige näiterakendusega

Selles õpetuses õpite järgmisi teemasid.

  • Marsruut – marsruutimine vastutab URL-i päringutele vastamise eest. Marsruutimine sobitab URL-i eelnevalt määratletud marsruutidega. Kui marsruudi vastet ei leita, viskab CodeIgniter lehe ei leitud erandit.
  • Kontrollerid – marsruudid on seotud kontrolleritega. Kontrollerid liimivad mudelid ja vaated kokku. Andmete/äriloogika päring mudelilt ja tulemused tagasi vaate esitluses. Kui URL on marsruudiga sobitatud, edastatakse see kontrolleri avalikule funktsioonile. See funktsioon suhtleb andmeallika, äriloogikaga ja tagastab tulemusi kuvava vaate.
  • views – esitlemise eest vastutavad vaated. Vaade on tavaliselt kombinatsioon HTML-ist, CSS-ist ja JavaSkript. See osa vastutab veebilehe kasutajale kuvamise eest. Tavaliselt tuuakse kuvatavad andmed tavaliselt andmebaasist või muudest saadaolevatest andmeallikatest.

Kuidas luua uut CodeIgniteri projekti

Kasutame uue projekti loomiseks Composerit. Ma kasutan PHP sisseehitatud serverit, seega pole vaja lisatarkvara, näiteks Apache. Selles õpetuses kasutame Windows operatsioonisüsteem. Seetõttu oleme loonud draivile C kausta Sites. Võite kasutada mis tahes teile sobivat kataloogi.

Avage käsurida/terminal ja käivitage järgmine käsk

cd C:\Sites

Loome nüüd Composeri abil CodeIgniteri projekti. Käivitage järgmine käsk

composer create-project CodeIgniter/framework ci-app

SIIN,

  • Ülaltoodud käsk loob uue CodeIgniteri projekti versiooni 3, kasutades uusimat stabiilset väljalaset, st versiooni 3.1.9, kataloogi ci-app.

Kui ülaltoodud käsk on töötamise lõpetanud, peaksite terminalis saama järgmisega sarnaseid tulemusi

Looge uus CodeIgniteri projekt

Käivitage järgmine käsk, et sirvida vastloodud projektikataloogi ci-app

cd ci-app

Käivitame nüüd PHP sisseehitatud veebiserveri

 php -S localhost:3000

SIIN,

  • Ülaltoodud käsk käivitab sisseehitatud PHP-serveri, mis töötab pordis 3000.

Avage veebibrauser ja sirvige järgmist URL-i: http://localhost:3000/

Saate järgmise lehe

Looge uus CodeIgniteri projekt

Kui näete ülaltoodud lehte, siis õnnitleme, installimine õnnestus CodeIgniter.

Nagu ülaltoodud veebilehelt võib lugeda, renderdab ülal kuvatud leht vaade, mis asub failis application/views/welcome_message.php ja vastutav kontroller asub aadressil application/controllers/Welcome.php

CodeIgniteri marsruutimine

Praegu on meie rakendusel ainult üks URL, mis on avaleht. Selles jaotises kohandame kodu jaotist. Loome mõned uued URL-id, mis vastavad erinevatele päringutele.

Alustame kodulehe marsruudiga

Avage marsruudifail, nagu on näidatud alloleval teel

application/config/routes.php

Peaksite nägema järgmist sisu

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

SIIN,

  • $route['default_controller'] = 'tere tulemast'; määrab vaikekontrolleri, mis vastab URI päringutele
  • $route['404_override'] = ”; see marsruut võimaldab määrata kohandatud marsruudi 404 vigade jaoks. Kui lehte ei leita, ilmneb tõrge 404. CodeIgniteril on tõrke jaoks vaikekäsitleja, kuid soovi korral saate ise määrata.
  • $route['translate_uri_dashes'] = VÄÄR; see suvand võimaldab tõlkida kriipsud alakriipsudeks. Räägime sellest valikust, kui vaatame, kuidas marsruudid CodeIgniteris töötavad.

Vaatame nüüd kontrolleri meetodit, mis vastutab avalehe kuvamise eest, mida nägime URL-i avamisel http://localhost:3000/ veebibrauseris.

Avage järgmine fail

application/controllers/Welcome.php

Peaksite nägema järgmist koodi

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

class Welcome extends CI_Controller {

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

SIIN,

  • Defined ('BASEPATH') VÕI exit('Otsene skripti juurdepääs pole lubatud'); kaitseb kontrolleriklassile otsese juurdepääsu eest ilma index.php faili läbimata. Pidage meeles, et MVC paradigmas on kõigil päringutel üks sisenemispunkt ja CodeIgniteri puhul selle index.php. See kood blokeerib kõik päringud, mis ei tule läbi index.php
  • klass Tere tulemast laiendab CI_Controller {…} määratleb klassi Tere tulemast, mis laiendab põhiklassi CI_Controller
  • public function index() määrab avaliku funktsiooni, mis avalehe avamisel vaikimisi välja kutsutakse
  • $this->load->view('welcome_message'); see rida laadib vaate welcome_message. Fail welcome_message asub kataloogis application/views/welcome_message.php

Seni oleme CodeIgniteriga ainult uurinud, mis karbist välja tuleb, proovime nüüd teha mõned muudatused. Loome oma kodulehe ja asendame vaikelehe

Looge failis application/views/home.php uus fail

Lisage saidile home.php järgmine kood

<!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>

SIIN,

Ülaltoodud HTML-kood laadib Burma SSS-i raamistiku ja fondi CDN-võrgust loob väga lihtsa HTML-dokumendi. See rakendab väga lihtsat CSS-i reeglit Birma CSS-i raamistikust.

Avage oma brauseris järgmine URL: http://localhost:3000/

Peaksite nägema järgmist

CodeIgniteri marsruutimine

Suurepärane, oleme just edukalt kodulehte muutnud. Liikudes edasi, määratleme oma marsruudi. Oletame, et meie rakendus peab näitama ka meie kohta käivat lehte.

Loo marsruut

Avage marsruudifail application/config.routes.php

Lisage järgmine marsruut

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

SIIN,

  • Kui külastaja külastab URL-i /about-us, anname CodeIgniterile korralduse otsida kontrollerit Tere tulemast ja käivitada meetod about_us.

Loo kontroller

Defineerime nüüd meie jaoks kasutatava kontrolleri meetodi

Avage rakendus/kontrollerid/Welcome.php

Lisage järgmine meetod

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

SIIN,

  • Ülaltoodud kood määratleb funktsiooni about_us ja laadib vaate about_us.

Looge vaade

Loome nüüd vaate, millele just ülaltoodud jaotises viitasime

Looge failis application/views/about_us.php uus fail about_us.php

Lisage järgmine kood

<!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>

Oleme valmis, avage oma veebibrauseris järgmine URL: http://localhost:3000/index.php/about-us

Näete järgmist lehte

Looge CodeIgniteris vaade

Kui näete ülaltoodud lehte, siis õnnitleme, olete CodeIgniteris edukalt loonud lihtsa rakenduse.

kokkuvõte

Selles õpetuses käsitlesime kolme (3) peamist komponenti, mis moodustavad CodeIgniteri rakenduse. Vaatasime marsruute ja nende määratlemist, kontrollereid ja meetodeid, mis vastavad marsruudipäringutele, ning lõime lihtsaid vaateid, mis tagastatakse kasutajatele, kui nad ressurssi taotlevad.