21 grudnia, 2021

strony statyczne¶

Uwaga: Ten poradnik zakłada, że pobrałeś CodeIgniter i zainstalowałeś framework w swoim środowisku programistycznym.

pierwszą rzeczą, którą zamierzasz zrobić, to skonfigurować kontroler do obsługi stron. Kontroler to po prostu klasa, która pomaga delegować work.It jest klejem Twojej aplikacji internetowej.

na przykład, gdy dzwoni się do:

możemy sobie wyobrazić, że istnieje kontroler o nazwie „news”. Metoda wywoływana w wiadomościach byłaby „najnowsza”. Zadaniem metody news może być napisanie 10 Newsów i renderowanie ich na stronie. Bardzo często w MVC zobaczysz wzorce adresów URL, które pasują:

ponieważ Schematy adresów URL stają się bardziej złożone, może to ulec zmianie. Ale na razie, to wszystko, co musimy wiedzieć.

Utwórz plik w application / controllers / Pages.php z następującym kodem.

<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}

utworzyłeś klasę o nazwie Pages, z metodą view, która akceptuje jeden argument o nazwie $page. Klasa Pages rozszerza klasęCI_Controller. Oznacza to, że nowa klasa pages ma dostęp do metod i zmiennych zdefiniowanych w klasie CI_Controller (system/core/Controller.php).

kontroler stanie się centrum każdego żądania naszej aplikacji internetowej. W bardzo technicznych dyskusjach CodeIgniter może być określany jako super obiekt. Jak każda klasa php, określasz ją w swoich kontrolerach jako $this. Odwołując się do $this, będziesz ładował biblioteki, widoki i ogólnie sterował frameworkiem.

teraz stworzyłeś swoją pierwszą metodę, nadszedł czas, aby zrobić kilka podstawowych szablonów stron. Będziemy tworzyć dwa „widoki” (szablony stron), które działają jako stopka i nagłówek strony.

Utwórz nagłówek w application / views / templates / header.php i dodaj następujący kod:

<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>

nagłówek zawiera podstawowy kod HTML, który chcesz wyświetlić przed załadowaniem głównego widoku, wraz z nagłówkiem. Będzie on również wyprowadzał zmienną $title, którą zdefiniujemy później w kontrolerze.Teraz Utwórz stopkę w application / views / templates / footer.PHP zawiera następujący kod:

 <em>&copy; 2015</em> </body></html>

dodawanie logiki do kontrolera¶

wcześniej skonfigurowano kontroler za pomocą metody view(). Metoda odczytuje jeden parametr, którym jest nazwa ładowanej strony. Szablony stron znajdują się w katalogu application/views/pages/.

w tym katalogu utwórz dwa pliki o nazwie home.php i na temat.php.W tych plikach wpisz tekst-wszystko, co chcesz-i zapisz je.Jeśli lubisz być szczególnie nieoryginalny, spróbuj ” Hello World!”.

aby załadować te strony, musisz sprawdzić, czy żądana strona faktycznie istnieje:

public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}

teraz, gdy strona istnieje, jest ładowana, w tym nagłówek i stoper, i wyświetlana użytkownikowi. Jeśli strona nie istnieje, wyświetlany jest błąd „404page not found”.

pierwsza linia w tej metodzie sprawdza, czy strona faktycznie istnieje.Natywna funkcja PHP file_exists()służy do sprawdzania, czy plik jest tam, gdzie powinien być. show_404() jest wbudowaną funkcją CodeIgniterfunction, która renderuje domyślną stronę błędu.

w szablonie nagłówka użyto zmiennej $title do dostosowania tytułu strony. Wartość title jest zdefiniowana w tej metodzie, ale zamiast przypisywać wartość do zmiennej, jest ona przypisana do elementu title w tablicy $data.

ostatnią rzeczą, którą należy zrobić, jest ładowanie widoków w zamówieniu, które powinny być wyświetlane. Drugi parametr w metodzie view() służy do przekazywania wartości do widoku. Każda wartość w tablicy $data jest przypisana do zmiennej o nazwie jej klucza. Tak więc wartość$data w kontrolerze jest równoważna $title w widoku.

Routing¶

kontroler działa! Skieruj przeglądarkę na index.php/pages/view, aby zobaczyć swoją stronę. Gdy odwiedziszindex.php/pages/view/about, zobaczysz stronę O mnie, w tym nagłówek i stopkę.

korzystając z niestandardowych reguł routingu, masz możliwość mapowania dowolnego URI na anycontroller i metodę, a także uwolnienia się od normalnej konwencji:http://example.com///

zróbmy to. Otwórz plik routingu znajdujący się w aplikacji / config / routes.php i dodać następujące dwie linie.Usuń cały inny kod, który ustawia dowolny element w tablicy $route.

$route = 'pages/view';$route = 'pages/view/';

CodeIgniter odczytuje swoje reguły routingu od góry do dołu i kieruje tam zapytanie do pierwszej reguły dopasowania. Każda reguła jest wyrażeniem regularnym(po lewej stronie) odwzorowanym na nazwę kontrolera i metody oddzielone ukośnikami (po prawej stronie). Kiedy pojawia się żądanie, CodeIgniter szuka pierwszej kontroli i wywołuje odpowiedni kontroler i metodę, ewentualnie zargumentami.

więcej informacji na temat routingu można znaleźć w dokumentacji routingu URI.

tutaj druga reguła w tablicy $route pasuje do każdego żądania używającego symbolu wieloznacznego (:any). i przekazuje parametr do metody view() klasy Pages.

teraz odwiedź index.php/about. Czy został prawidłowo przekierowany do metody view() w kontrolerze pages? Super!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.