Ovladače CodeIgniter, směrování pohledů: Učte se s příkladovou aplikací

V tomto tutoriálu se naučíte následující témata.

  • Směrování – směrování odpovídá za odpověď na požadavky URL. Směrování odpovídá URL předdefinovaným trasám. Pokud není nalezena žádná shoda trasy, CodeIgniter vyvolá výjimku pro nenalezenou stránku.
  • řadiče – trasy jsou propojeny s ovladači. Ovladače slepí modely a pohledy dohromady. Požadavek na data/obchodní logiku z modelu a vrácení výsledků v prezentaci pohledu. Jakmile je adresa URL přiřazena k trase, je předána veřejné funkci kontroléru. Tato funkce spolupracuje se zdrojem dat, obchodní logikou a vrací pohled, který zobrazuje výsledky.
  • Zobrazení – za prezentaci odpovídají pohledy. Zobrazení je obvykle kombinací HTML, CSS a JavaSkript. Tato část je zodpovědná za zobrazení webové stránky uživateli. Typicky jsou zobrazená data obvykle načtena z databáze nebo jiných dostupných zdrojů dat.

Jak vytvořit nový projekt CodeIgniter

K vytvoření nového projektu použijeme Composer. Budu používat PHP vestavěný server, takže není nutné mít extra software jako např Apache. V tomto tutoriálu používáme Windows operační systém. Proto jsme vytvořili složku Sites na jednotce C. Můžete použít libovolný adresář, který je pro vás vhodný.

Otevřete příkazový řádek/terminál a spusťte následující příkaz

cd C:\Sites

Nyní vytvoříme projekt CodeIgniter pomocí Composer. Spusťte následující příkaz

composer create-project CodeIgniter/framework ci-app

TADY,

  • Výše uvedený příkaz vytvoří nový projekt CodeIgniter verze 3 pomocí nejnovější stabilní verze, tj. 3.1.9 do adresářové ci-app.

Po dokončení výše uvedeného příkazu byste měli být schopni v terminálu získat výsledky podobné následujícím

Vytvořte nový projekt CodeIgniter

Spuštěním následujícího příkazu přejděte do nově vytvořeného adresáře projektu ci-app

cd ci-app

Nyní spustíme vestavěný webový server PHP

 php -S localhost:3000

TADY,

  • Výše uvedený příkaz spustí vestavěný PHP server běžící na portu 3000.

Otevřete webový prohlížeč a procházejte následující URL: http://localhost:3000/

Získáte následující stránku

Vytvořte nový projekt CodeIgniter

Pokud vidíte výše uvedenou stránku, gratulujeme, úspěšně jste nainstalovali CodeIgniter.

Jak můžete vyčíst z výše uvedené webové stránky, výše zobrazená stránka je vykreslena pohledem umístěným v application/views/welcome_message.php a odpovědný kontrolor se nachází v application/controllers/Welcome.php

Směrování CodeIgniter

Naše aplikace má prozatím pouze jednu adresu URL, která je domovskou stránkou. V této sekci přizpůsobíme domovskou sekci. Vytvoříme několik nových adres URL, které budou reagovat na různé požadavky.

Začněme trasou domovské stránky

Otevřete soubor tras, jak ukazuje cesta níže

application/config/routes.php

Měli byste vidět následující obsah

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

TADY,

  • $route['default_controller'] = 'vítejte'; definuje výchozí řadič, který odpovídá na požadavky URI
  • $route['404_override'] = ”; tato trasa vám umožňuje definovat vlastní trasu pro chyby 404. Chyba 404 nastane, když se stránka nenajde. CodeIgniter má výchozí obslužný program pro chybu, ale pokud si to přejete, můžete definovat svůj vlastní.
  • $route['translate_uri_dashes'] = FALSE; tato volba umožňuje převést pomlčky na podtržítka. O této možnosti si povíme, když se podíváme na to, jak fungují trasy v CodeIgniter.

Podívejme se nyní na metodu ovladače zodpovědnou za zobrazení domovské stránky, kterou jsme viděli, když jsme otevřeli URL http://localhost:3000/ ve webovém prohlížeči.

Otevřete následující soubor

application/controllers/Welcome.php

Měli byste vidět následující kód

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

class Welcome extends CI_Controller {

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

TADY,

  • Definováno ('BASEPATH') NEBO exit('Není povolen přímý přístup pomocí skriptu'); chrání před přímým přístupem ke třídě kontroleru bez průchodu přes soubor index.php. Pamatujte, že v paradigmatu MVC mají všechny požadavky jeden vstupní bod a pro CodeIgniter jeho index.php. Tento kód blokuje všechny požadavky, které nepřicházejí přes index.php
  • třída Welcome rozšiřuje CI_Controller {…} definuje třídu Welcome, která rozšiřuje nadřazenou třídu CI_Controller
  • public function index() definuje veřejnou funkci, která se standardně volá při otevření domovské stránky
  • $this->load->view('welcome_message'); tento řádek načte zobrazení welcome_message. Soubor welcome_message se nachází v adresáři application/views/welcome_message.php

Zatím jsme pouze prozkoumali to, co vychází z krabice s CodeIgniter, zkusme nyní provést nějaké změny. Vytvoříme naši domovskou stránku a nahradíme výchozí stránku

Vytvořte nový soubor v application/views/home.php

Přidejte následující kód do 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>

TADY,

Výše uvedený HTML kód načte rámec Burma SSS a font ze sítě CDN vytvoří velmi základní HTML dokument. Aplikuje velmi jednoduché CSS pravidlo z barmského CSS frameworku.

Otevřete ve svém prohlížeči následující adresu URL: http://localhost:3000/

Měli byste vidět následující

Směrování CodeIgniter

Skvělé, právě jsme úspěšně upravili domovskou stránku. Jdeme dál, pojďme definovat naši trasu. Předpokládejme, že naše aplikace musí být také schopna zobrazit stránku o nás.

Vytvořte trasu

Otevřete soubor tras application/config.routes.php

Přidejte následující trasu

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

TADY,

  • Když návštěvník navštíví URL /about-us, dáváme CodeIgniter pokyn, aby vyhledal kontrolér Welcome a provedl metodu about_us.

Vytvořte ovladač

Pojďme si nyní definovat metodu ovladače o nás

Otevřete application/controllers/Welcome.php

Přidejte následující metodu

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

TADY,

  • Výše uvedený kód definuje funkci about_us a načte pohled about_us.

Vytvořte pohled

Pojďme nyní vytvořit pohled, na který jsme právě odkazovali ve výše uvedené části

Vytvořte nový soubor about_us.php v application/views/about_us.php

Přidejte následující kód

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

Jsme připraveni, otevřete si ve svém webovém prohlížeči následující URL: http://localhost:3000/index.php/about-us

Uvidíte následující stránku

Vytvořte pohled v CodeIgniter

Pokud vidíte výše uvedenou stránku, gratulujeme, úspěšně jste vytvořili jednoduchou aplikaci v CodeIgniter.

Shrnutí

V tomto tutoriálu jsme probrali tři (3) hlavní součásti, které tvoří aplikaci CodeIgniter. Podívali jsme se na cesty a jak je definovat, řadiče a jak vytvořit metody, které reagují na požadavky na směrování, a vytvořili jsme jednoduché pohledy, které se vrátí uživatelům, když požádají o zdroj.