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