Kontrolery CodeIgniter, routing widoków: ucz się, korzystając z przykładowej aplikacji
W tym samouczku zapoznasz się z następującymi tematami.
- Wyznaczanie tras – routing odpowiada za odpowiadanie na żądania URL. Routing dopasowuje adres URL do wstępnie zdefiniowanych tras. Jeśli nie zostanie znaleziona żadna pasująca trasa, CodeIgniter zgłasza wyjątek dotyczący strony, której nie znaleziono.
- Sterowniki – trasy są powiązane ze sterownikami. Kontrolery sklejają modele i widoki. Żądanie danych/logiki biznesowej z modelu i zwrócenie wyników w prezentacji widoku. Po dopasowaniu adresu URL do trasy jest on przekazywany do publicznej funkcji kontrolera. Funkcja ta współdziała ze źródłem danych, logiką biznesową i 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ą zazwyczaj pobierane z bazy danych lub innych dostępnych źródeł danych.
Jak utworzyć nowy projekt CodeIgniter
Użyjemy Composera, aby utworzyć nowy projekt. Będę używać wbudowanego serwera PHP, więc nie jest konieczne posiadanie dodatkowego oprogramowania, takiego jak Apache. W tym samouczku używamy Windows system operacyjny. Dlatego utworzyliśmy folder Sites na dysku C. Możesz użyć dowolnego katalogu, który Ci odpowiada.
Otwórz wiersz poleceń/terminal i uruchom następujące polecenie
cd C:\Sites
Teraz utworzymy projekt CodeIgniter za pomocą Composera. Uruchom następujące polecenie
composer create-project CodeIgniter/framework ci-app
TUTAJ,
- Powyższe polecenie tworzy nowy projekt CodeIgniter w wersji 3 przy użyciu najnowszej stabilnej wersji, tj. 3.1.9, w katalogu ci-app.
Po zakończeniu działania powyższego 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
Uruchommy teraz 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ź pod następujący adres URL: http://localhost:3000/
Otrzymasz następującą stronę
Jeśli widzisz powyższą stronę, gratulacje, instalacja przebiegła pomyślnie CodeIgniter.
Jak można przeczytać na powyższej stronie internetowej, strona wyświetlana powyżej 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
Trasowanie CodeIgnitera
Na razie nasza aplikacja ma tylko jeden adres URL, który jest stroną główną. W tej sekcji dostosujemy sekcję główną. Utworzymy kilka nowych adresów URL, które będą odpowiadać na różne żądania.
Zacznijmy od trasy strony głównej
Otwórz plik tras zgodnie ze ścieżką wskazaną poniżej
application/config/routes.php
Powinieneś móc zobaczyć następującą treść
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
TUTAJ,
- $route['default_controller'] = 'witaj'; definiuje domyślny kontroler, który odpowiada na żądania URI
- $trasa['404_override'] = ”; ta trasa umożliwia zdefiniowanie niestandardowej trasy dla błędów 404. Gdy strona nie zostanie znaleziona, pojawia się błąd 404. CodeIgniter ma domyślną procedurę obsługi błędu, ale możesz zdefiniować własną, jeśli chcesz.
- $trasa['translate_uri_dashes'] = FAŁSZ; ta opcja umożliwia tłumaczenie myślników na podkreślenia. O tej opcji porozmawiamy, gdy przyjrzymy się działaniu tras w CodeIgniter.
Przyjrzyjmy się teraz metodzie kontrolera odpowiedzialnej za wyświetlenie strony głównej, którą zobaczyliśmy po otwarciu adresu URL http://localhost:3000/
w przeglądarce internetowej.
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,
- Zdefiniowano („BASEPATH”) OR exit („Bezpośredni dostęp do skryptu nie jest dozwolony”); chroni przed bezpośrednim dostępem do klasy kontrolera bez konieczności przechodzenia przez plik Index.php. Pamiętaj, że w paradygmacie MVC wszystkie żądania mają jeden punkt wejścia, a w przypadku CodeIgniter jego plik Index.php. Ten kod blokuje wszystkie żądania, które nie przechodzą przez plik Index.php
- class Welcome rozszerza CI_Controller {…} definiuje klasę Welcome, która rozszerza klasę nadrzędną CI_Controller
- Funkcja publiczna indeks() definiuje funkcję publiczną, która jest domyślnie wywoływana po otwarciu strony głównej
- $this->load->view('welcome_message'); ta linia ładuje widok Welcome_message. Plik wiadomość_powitania znajduje się w katalogu application/views/welcome_message.php
Do tej pory zbadaliśmy tylko to, co jest dostępne od razu po wyjęciu z pudełka z CodeIgniterem, spróbujmy teraz wprowadzić pewne zmiany. Utworzymy naszą stronę główną i zastąpimy domyślną stronę
Utwórz nowy plik w application/views/home.php
Dodaj następujący kod 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>
TUTAJ,
Powyższy kod HTML ładuje framework Birma SSS i czcionkę z sieci CDN, tworząc bardzo prosty dokument HTML. Stosuje bardzo prostą regułę CSS z frameworka CSS Birmy.
Otwórz następujący adres URL w swojej przeglądarce: http://localhost:3000/
Powinieneś móc zobaczyć następujące rzeczy
Świetnie, właśnie pomyślnie zmodyfikowaliśmy stronę główną. Idąc dalej, zdefiniujmy naszą trasę. Załóżmy, że nasza aplikacja również musi mieć możliwość wyświetlania strony o nas.
Utwórz trasę
Otwórz plik tras application/config.routes.php
Dodaj następującą trasę
$route['about-us'] = 'welcome/about_us';
TUTAJ,
- Kiedy odwiedzający odwiedza adres URL /about-us, instruujemy CodeIgniter, aby wyszukał kontroler Welcome i wykonał metodę about_us.
Utwórz kontroler
Zdefiniujmy teraz metodę kontrolera dotyczącą nas
Otwórz aplikację/kontrolery/Welcome.php
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
Stwórzmy teraz widok, o którym wspominaliśmy w powyższej sekcji
Utwórz nowy plik about_us.php w application/views/about_us.php
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>
Wszystko gotowe, otwórz poniższy adres URL w swojej przeglądarce internetowej: http://localhost:3000/index.php/about-us
Zobaczysz następującą stronę
Jeśli widzisz powyższą stronę, to gratuluję, udało Ci się stworzyć prostą aplikację w CodeIgniter.
Podsumowanie
W tym samouczku omówiliśmy trzy (3) główne komponenty składające się na aplikację CodeIgniter. Przyjrzeliśmy się trasom i sposobom ich definiowania, kontrolerom i sposobom tworzenia metod odpowiadających na żądania tras oraz stworzyliśmy proste widoki, które są zwracane użytkownikom, gdy żądają zasobu.