CodeKontrolery Igniter, routing widoków: nauka na przykładzie

⚡ Inteligentne podsumowanie

Ten CodePrzykład Igniter tworzy małą aplikację, aby pokazać, jak routing, kontrolery i widoki współdziałają ze sobą. Nowy projekt jest tworzony za pomocą Composera, a mapa tras jest tworzona. URLdo metod kontrolera, a każda metoda ładuje widok, który zwraca HTML do przeglądarki.

  • 🧭 Routing: Trasy pasują do URL do metody kontrolera i niezrównanego URL powoduje błąd „strona nie znaleziona”.
  • 🎛️ Kontrolery: Metoda kontrolera reaguje na trasę, żąda danych i zwraca widok.
  • 🖼️ Odwiedzin: Widok łączy HTML, CSS i JavaSkrypt prezentujący wynik użytkownikowi.
  • 📦 Konfiguracja projektu: Composer tworzy projekt, a wbudowany serwer PHP uruchamia go lokalnie.
  • 🏠 Trasa domyślna: default_controller ustawia stronę główną, a 404_override ustawia niestandardową stronę błędu.
  • ➕ Trasa niestandardowa: Trasa taka jak about-us odwzorowuje metodę about_us kontrolera Welcome.
  • 🔁 Pełny przepływ: URL aby skierować do kontrolera w celu wyświetlenia, a następnie HTML z powrotem do przeglądarki.

CodeKontrolery i widoki Igniter

W tym samouczku zapoznasz się z następującymi tematami:

  • Wyznaczanie tras – routing jest odpowiedzialny za reagowanie na URL żądania. Trasowanie pasuje do URL do predefiniowanych tras. Jeśli nie zostanie znaleziona żadna pasująca trasa, CodeIgniter zgłasza wyjątek „strona nie została znaleziona”.
  • Sterowniki – trasy są powiązane z kontrolerami. Kontrolery sklejają modele i widoki. Żądają danych i logiki biznesowej z modelu i zwracają wyniki w prezentacji widoku. Po URL Po dopasowaniu do trasy jest ona przekazywana do publicznej funkcji kontrolera. Funkcja ta współdziała ze źródłem danych i logiką biznesową, a następnie zwraca widok wyświetlający wyniki.
  • odwiedzajacy – widoki odpowiadają za prezentację. Widok jest zazwyczaj kombinacją HTML, CSS i JavaSkrypt. Ta część odpowiada za wyświetlanie strony internetowej użytkownikowi. Zazwyczaj wyświetlane dane są pobierane z bazy danych lub innego dostępnego źródła danych.

Jak stworzyć nowy CodeProjekt Igniter

Użyjemy Composera do utworzenia nowego projektu. Skorzystamy z wbudowanego serwera PHP, więc nie będzie konieczne posiadanie dodatkowego oprogramowania, takiego jak ApacheW tym samouczku używamy Windows system operacyjny, więc utworzyliśmy folder Sites na dysku C. Możesz użyć dowolnego katalogu, który Ci odpowiada.

Otwórz wiersz poleceń lub terminal i uruchom następujące polecenie:

cd C:\Sites

Teraz utworzymy CodeProjekt Igniter z wykorzystaniem Composera. Uruchom następujące polecenie:

composer create-project CodeIgniter/framework ci-app

Tutaj:

  • Powyższe polecenie tworzy nowy CodeProjekt Igniter w wersji 3, wykorzystujący najnowszą stabilną wersję (w chwili pisania tego tekstu 3.1.9), do katalogu o nazwie ci-app.

Po zakończeniu działania polecenia w terminalu powinny zostać wyświetlone wyniki podobne do poniższych:

Kompozytor tworzący nowy CodeProjekt Igniter

Uruchom następujące polecenie, aby przejść do nowo utworzonego katalogu projektu ci-app:

cd ci-app

Teraz uruchom wbudowany serwer WWW PHP:

php -S localhost:3000

Tutaj:

  • Powyższe polecenie uruchamia wbudowany serwer PHP działający na porcie 3000.

Otwórz przeglądarkę internetową i przejdź do następujących opcji URL: http://localhost:3000/. Otrzymasz następującą stronę:

CodeDomyślna strona powitalna Ignitera

Jeśli widzisz stronę powyżej, gratulacje, instalacja przebiegła pomyślnie CodeZapalnikStrona jest renderowana przez widok znajdujący się w pliku application/views/welcome_message.php, a odpowiedzialny za nią kontroler znajduje się w pliku application/controllers/Welcome.php.

CodeTrasowanie zapłonnika

Na razie nasza aplikacja ma tylko jedną URL, czyli strona główna. W tej sekcji dostosujemy sekcję główną i utworzymy nowe URLktóre odpowiadają na różne żądania.

Zacznijmy od trasy na stronie głównej. Otwórz plik tras w poniższej ścieżce:

application/config/routes.php

Powinieneś zobaczyć następującą treść:

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

Tutaj:

  • $route['default_controller'] = 'welcome'; definiuje domyślny kontroler, który odpowiada na żądania URI.
  • $route['404_override'] = ”; pozwala zdefiniować niestandardową trasę dla błędów 404. Błąd 404 występuje, gdy strona nie zostanie znaleziona. CodeIgniter ma domyślną procedurę obsługi błędu, ale jeśli chcesz, możesz zdefiniować własną.
  • $route['translate_uri_dashes'] = FALSE; pozwala zamienić myślniki na podkreślenia. Omówimy tę opcję, gdy przyjrzymy się działaniu tras w CodeZapalnik.

Przyjrzyjmy się teraz metodzie kontrolera odpowiedzialnej za wyświetlanie strony głównej, którą widzieliśmy po jej otwarciu http://localhost:3000/Otwórz następujący plik:

application/controllers/Welcome.php

Powinieneś zobaczyć następujący kod:

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

class Welcome extends CI_Controller {

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

Tutaj:

  • defined('BASEPATH') OR exit('Bezpośredni dostęp do skryptu nie jest dozwolony'); chroni przed bezpośrednim dostępem do klasy kontrolera bez przechodzenia przez plik index.php. W paradygmacie MVC wszystkie żądania mają jeden punkt wejścia, który dla CodeIgniter to index.php. Ten kod blokuje wszystkie żądania, które nie przechodzą przez index.php.
  • Klasa Welcome rozszerza CI_Controller {…} definiuje klasę Welcome, która rozszerza klasę nadrzędną CI_Controller.
  • publiczna funkcja index() definiuje funkcję publiczną, która jest wywoływana domyślnie po otwarciu strony głównej.
  • $this->load->view('welcome_message'); ładuje widok welcome_message, znajdujący się w pliku application/views/welcome_message.php.

Do tej pory badaliśmy tylko to, co znajduje się w pudełku CodeIgniter. Wprowadźmy teraz kilka zmian. Stworzymy własną stronę główną i zastąpimy stronę domyślną. Utwórz nowy plik o nazwie application/views/home.php i dodaj następujący kod:

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

Tutaj: Powyższy kod HTML ładuje framework Bulma CSS i Font Awesome z CDN i tworzy bardzo prosty dokument HTML. Stosuje prostą regułę CSS z frameworka Bulma CSS.

Otwórz następujące URL w Twojej przeglądarce: http://localhost:3000/. Powinieneś zobaczyć następujące informacje:

warunki indywidualne
 CodeStrona główna Ignitera

Świetnie, udało nam się zmodyfikować stronę główną. Przejdźmy dalej, zdefiniujmy naszą trasę. Załóżmy, że nasza aplikacja musi również wyświetlać stronę „O nas”.

Utwórz trasę

Otwórz plik tras application/config/routes.php i dodaj następującą trasę:

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

Tutaj:

  • Kiedy gość odwiedza URL /o-nas, instruujemy CodeIgniter wyszukuje kontroler Welcome i wykonuje metodę about_us.

Utwórz kontroler

Zdefiniujmy teraz metodę kontrolera about_us. Otwórz plik application/controllers/Welcome.php i dodaj następującą metodę:

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

Tutaj:

  • Powyższy kod definiuje funkcję about_us i ładuje widok about_us.

Utwórz widok

Utwórzmy teraz widok, do którego właśnie się odwoływaliśmy. Utwórz nowy plik about_us.php w pliku application/views/about_us.php i dodaj następujący 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>

Jesteśmy gotowi. Otwórz następujące URL w Twojej przeglądarce internetowej: http://localhost:3000/index.php/about-usZobaczysz następującą stronę:

CodeStrona „O nas” w Igniter

Jeśli widzisz stronę powyżej, gratulacje, udało Ci się stworzyć prostą aplikację w CodeZapalnik.

FAQ

Wpis trasy mapuje URL segment do kontrolera i metody, takiej jak „welcome/about_us”. Kiedy to URL jest proszony, CodeIgniter uruchamia nazwaną metodę, która ładuje i zwraca widok.

Ustawia kontroler, który obsługuje katalog główny witryny, gdy nie ma określonego URL podano. W tym przykładzie „welcome” oznacza, że ​​strona główna jest obsługiwana przez metodę index kontrolera Welcome.

Nie. Wbudowany serwer PHP, uruchomiony poleceniem php -S localhost:3000, wystarczy do uruchomienia przykładu lokalnie. Apache lub Nginx jest potrzebny tylko do wdrożenia produkcyjnego.

Tak. Z opisu strony AI może zapisać wpis trasy, metodę kontrolera i odpowiadający jej widok.ping nazwy spójne. Sprawdź ścieżki pod kątem zgodności z CodeWersja z zapłonem.

W tym przykładzie użyto CodeIgniter 3, który przechowuje kontrolery i widoki w aplikacji/. CodeW Igniter 4 dokonano przebudowy katalogów i przestrzeni nazw, więc ścieżki i składnia różnią się w nowszych projektach.

Podsumuj ten post następująco: