CodeŘídicí jednotky zapalovačů, směrování zobrazení: Učení s příkladem

⚡ Chytré shrnutí

Toto CodePříklad Igniteru vytváří malou aplikaci, která ukazuje, jak routing, controllery a views spolupracují. Nový projekt je vytvořen pomocí Composeru, mapování routes. URLs do metod kontroleru a každá metoda načte zobrazení, které vrátí HTML do prohlížeče.

  • 🧭 Směrování: Trasy odpovídají URL k metodě řadiče a nesrovnatelné URL vyvolá chybu „stránka nenalezena“.
  • 🎛️ Ovladače: Metoda kontroleru reaguje na trasu, vyžádá si data a vrátí zobrazení.
  • Zobrazení: Pohled kombinuje HTML, CSS a JavaSkript pro prezentaci výsledku uživateli.
  • ???? Nastavení projektu: Composer vytvoří projekt a vestavěný PHP server ho spustí lokálně.
  • 🏠 Výchozí trasa: default_controller nastavuje domovskou stránku a 404_override nastavuje vlastní chybovou stránku.
  • Vlastní trasa: Trasa podobná metodě about-us se mapuje na metodu about_us kontroleru Welcome.
  • 🔁 Plný tok: URL směrovat do kontroleru pro zobrazení a poté HTML zpět do prohlížeče.

CodeOvladače a zobrazení zapalovače

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

  • Směrování – směrování je zodpovědné za reakci na URL požadavky. Směrování odpovídá URL k předdefinovaným trasám. Pokud není nalezena žádná shoda trasy, CodeIgniter vyvolá výjimku „stránka nenalezena“.
  • řadiče – trasy jsou propojeny s kontroléry. Kontroléry propojují modely a pohledy dohromady. Vyžadují data a obchodní logiku z modelu a vracejí výsledky v prezentaci pohledu. Jakmile je URL Pokud je přiřazena trase, je přeposlána veřejné funkci kontroleru. Tato funkce interaguje se zdrojem dat a obchodní logikou a vrací zobrazení, 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. Zobrazená data se obvykle načítají z databáze nebo jiného dostupného zdroje dat.

Jak vytvořit nový CodeProjekt zapalovače

K vytvoření nového projektu použijeme Composer. Použijeme vestavěný server PHP, takže není nutné mít další software, jako například ApacheV tomto tutoriálu použijeme Windows operační systém, takže jsme na disku C vytvořili složku Sites. Můžete použít libovolný adresář, který vám vyhovuje.

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

cd C:\Sites

Nyní vytvoříme CodeProjekt Igniter pomocí Composeru. Spusťte následující příkaz:

composer create-project CodeIgniter/framework ci-app

Zde:

  • Výše uvedený příkaz vytvoří nový CodeProjekt Igniter verze 3 s použitím nejnovější stabilní verze (3.1.9 v době psaní tohoto textu) nainstalujte do adresáře s názvem ci-app.

Po dokončení spuštění příkazu byste v terminálu měli vidět výsledky podobné následujícím:

Skladatel tvořící nový CodeProjekt zapalovače

Spusťte následující příkaz pro přechod do nově vytvořeného adresáře projektu ci-app:

cd ci-app

Nyní spusťte vestavěný webový server PHP:

php -S localhost:3000

Zde:

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

Otevřete webový prohlížeč a přejděte na následující URL: http://localhost:3000/Zobrazí se vám následující stránka:

CodeVýchozí uvítací stránka Igniteru

Pokud vidíte výše uvedenou stránku, gratulujeme, úspěšně jste nainstalovali. CodeZapalovačStránka je vykreslována zobrazením umístěným v souboru application/views/welcome_message.php a zodpovědný kontroler se nachází v souboru application/controllers/Welcome.php.

CodeSměrování zapalovače

Prozatím má naše aplikace pouze jeden URL, což je domovská stránka. V této části si upravíme domovskou sekci a vytvoříme nové URLkteré reagují na různé požadavky.

Začněme s trasou domovské stránky. Otevřete soubor tras na níže uvedené cestě:

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;

Zde:

  • $route['default_controller'] = 'welcome'; definuje výchozí kontroler, který reaguje na požadavky URI.
  • $route['404_override'] = ”; umožňuje definovat vlastní trasu pro chyby 404. K chybě 404 dochází, když není nalezena stránka. CodeIgniter má pro chybu výchozí obslužnou rutinu, ale pokud si přejete, můžete si definovat vlastní.
  • $route['translate_uri_dashes'] = FALSE; umožňuje přeložit pomlčky na podtržítka. Tuto možnost probereme, až se podíváme na to, jak fungují trasy v CodeZapalovač.

Podívejme se nyní na metodu kontroleru, která je zodpovědná za zobrazení domovské stránky, kterou jsme viděli při otevření. http://localhost:3000/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');
}
}

Zde:

  • defined('BASEPATH') OR exit('Přímý přístup ke skriptu není povolen'); chrání před přímým přístupem k třídě kontroleru bez nutnosti procházet souborem index.php. V paradigmatu MVC mají všechny požadavky jeden vstupní bod, který pro CodeIgniter je index.php. Tento kód blokuje všechny požadavky, které nepřicházejí přes index.php.
  • Třída Welcome extends CI_Controller {…} definuje třídu Welcome, která rozšiřuje nadřazenou třídu CI_Controller.
  • Veřejná funkce index() definuje veřejnou funkci, která se volá standardně při otevření domovské stránky.
  • $this->load->view('welcome_message'); načte zobrazení welcome_message, které se nachází v souboru application/views/welcome_message.php.

Zatím jsme prozkoumali pouze to, co je součástí balení. CodeZapalovač. Nyní provedeme několik změn. Vytvoříme si vlastní domovskou stránku a nahradíme výchozí stránku. Vytvořte nový soubor na adrese application/views/home.php a přidejte do něj následující kód:

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

Zde: Výše uvedený HTML kód načte CSS framework Bulma a Font Awesome z CDN a vytvoří velmi základní HTML dokument. Aplikuje jednoduché CSS pravidlo z CSS frameworku Bulma.

Otevřete následující URL ve vašem prohlížeči: http://localhost:3000/Měli byste vidět následující:

Zvyk CodeDomovská stránka zapalovače

Skvělé, úspěšně jsme upravili domovskou stránku. Pojďme dále definovat naši trasu. Předpokládejme, že naše aplikace potřebuje také zobrazit stránku „O nás“.

Vytvořte trasu

Otevřete soubor tras application/config/routes.php a přidejte následující trasu:

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

Zde:

  • Když návštěvník navštíví URL /o-nás, školíme CodeZapalovač pro hledání kontroléru Welcome a spuštění metody about_us.

Vytvořte ovladač

Nyní si definujme metodu kontroleru about_us. Otevřete soubor application/controllers/Welcome.php a přidejte následující metodu:

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

Zde:

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

Vytvořte pohled

Nyní si vytvořme zobrazení, na které jsme právě odkazovali. Vytvořte nový soubor about_us.php v souboru application/views/about_us.php a přidejte do něj 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>

Můžeme začít. Otevřete následující. URL ve vašem webovém prohlížeči: http://localhost:3000/index.php/about-usZobrazí se vám následující stránka:

CodeStránka o nás na Igniteru

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

Nejčastější dotazy

Záznam trasy mapuje URL segmentu do kontroleru a metody, například 'welcome/about_us'. Když to URL je požadováno, CodeIgniter spustí pojmenovanou metodu, která načte a vrátí zobrazení.

Nastavuje řadič, který zpracovává kořenový adresář webu, když není k dispozici žádný specifický URL je uvedeno. V příkladu znamená „welcome“, že domovská stránka je obsluhována metodou index kontroleru Welcome.

Ne. Vestavěný PHP server, spuštěný pomocí php -S localhost:3000, stačí k lokálnímu spuštění příkladu. Apache nebo Nginx je potřeba pouze pro produkční nasazení.

Ano. Z popisu stránky může umělá inteligence zapsat položku trasy, metodu kontroleru a odpovídající zobrazení, keeping názvy konzistentní. Zkontrolujte cesty oproti vašim CodeVerze se zapalovačem.

Tento příklad používá CodeIgniter 3, který ukládá řadiče a pohledy v souboru application/. CodeIgniter 4 restrukturalizoval adresáře a jmenné prostory, takže cesty a syntaxe se v novějších projektech liší.

Shrňte tento příspěvek takto: