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.

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:
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ę:
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:
Ś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ę:
Jeśli widzisz stronę powyżej, gratulacje, udało Ci się stworzyć prostą aplikację w CodeZapalnik.




