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

Utwórz nowy projekt CodeIgniter

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ę

Utwórz nowy projekt CodeIgniter

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

Trasowanie CodeIgnitera

Ś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ę

Utwórz widok w CodeIgniter

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.