CodeIgniter - podstawowe pojęcia

Kontrolery

Kontroler to prosty plik klasy. Jak sama nazwa wskazuje, kontroluje całą aplikację poprzez URI.

Tworzenie kontrolera

Najpierw przejdź do application/controllersteczka. Znajdziesz tam dwa pliki,index.html i Welcome.php. Te pliki są dostarczane z CodeIgniterem.

Zachowaj te pliki tak, jak są. Utwórz nowy plik pod tą samą ścieżką o nazwie „Test.php”. Napisz następujący kod w tym pliku -

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

Plik Test class rozszerza wbudowaną klasę o nazwie CI_Controller. Ta klasa musi być rozszerzona, gdy chcesz stworzyć własną klasę Controller.

Wołanie kontrolera

Powyższy kontroler można wywołać przez URI w następujący sposób -

http://www.your-domain.com/index.php/test

Zwróć uwagę na słowo „test”W powyższym identyfikatorze URI po index.php. Wskazuje nazwę klasy kontrolera. Jak podaliśmy nazwę administratora „Test", piszemy "test”Po pliku index.php. Nazwa klasy musi zaczynać się oduppercase letter ale musimy pisać lowercase letterkiedy nazywamy ten kontroler przez URI. Ogólna składnia wywołania kontrolera jest następująca -

http://www.your-domain.com/index.php/controller/method-name

Tworzenie i wywoływanie metody konstruktora

Zmodyfikujmy powyższą klasę i stwórzmy inną metodę o nazwie „hello”.

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

Możemy wykonać powyższy kontroler na trzy sposoby -

  • http://www.your-domain.com/index.php/test
  • http://www.your-domain.com/index.php/test/index
  • http://www.your-domain.com/index.php/test/hello

Po odwiedzeniu pierwszego URI w przeglądarce otrzymujemy dane wyjściowe pokazane na poniższym obrazku. Jak widać, otrzymaliśmy wynik metody „index”, Mimo że nie przekazaliśmy nazwy metody URI. Użyliśmy tylko nazwy kontrolera w URI. W takich sytuacjach CodeIgniter wywołuje metodę domyślną „index”.

Odwiedzając drugi identyfikator URI w przeglądarce, otrzymujemy takie same dane wyjściowe, jak pokazano na powyższym obrazku. Tutaj przekazaliśmy nazwę metody po nazwie kontrolera w URI. Ponieważ nazwa metody to „index”, Otrzymujemy ten sam wynik.

Odwiedzając trzeci identyfikator URI w przeglądarce, otrzymujemy dane wyjściowe pokazane na poniższym obrazku. Jak widać, otrzymujemy wynik metody „hello”Ponieważ zdaliśmy”hello”Jako nazwa metody, po nazwie kontrolera”test”W identyfikatorze URI.

Punkty do zapamiętania

  • Nazwa klasy kontrolera musi zaczynać się wielką literą.

  • Kontroler należy wywołać z użyciem małej litery.

  • Nie używaj tej samej nazwy metody, co klasa nadrzędna, ponieważ spowoduje to przesłonięcie funkcjonalności klasy nadrzędnej.

Wyświetlenia

Może to być prosta lub złożona strona internetowa, którą może wywołać kontroler. Strona internetowa może zawierać nagłówek, stopkę, pasek boczny itp. Widok nie może być wywołany bezpośrednio. Stwórzmy prosty widok. Utwórz nowy plik podapplication/views z imieniem „test.php”I skopiuj poniższy kod do tego pliku.

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

Zmień kod application/controllers/test.php plik, jak pokazano poniżej.

Ładowanie widoku

Widok można załadować za pomocą następującej składni -

$this->load->view('name');

Gdzie nazwa to plik widoku, który jest renderowany. Jeśli planujesz przechowywać plik widoku w jakimś katalogu, możesz użyć następującej składni -

$this->load->view('directory-name/name');

Nie jest konieczne określanie rozszerzenia jako php, chyba że zostanie użyte coś innego niż .php.

Metoda index () wywołuje metodę view i przekazuje argument „test” jako argument do metody view (), ponieważ kod HTML zapisaliśmy w „test.php”Plik pod application/views/test.php.

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

Oto wynik powyższego kodu -

Poniższy schemat blokowy ilustruje, jak wszystko działa -

Modele

Klasy modeli są przeznaczone do pracy z informacjami w bazie danych. Na przykład, jeśli używasz CodeIgniter do zarządzania użytkownikami w swojej aplikacji, musisz mieć klasę modelu, która zawiera funkcje do wstawiania, usuwania, aktualizowania i pobierania danych użytkowników.

Tworzenie klasy modelu

Klasy modelu są przechowywane w plikach application/modelsinformator. Poniższy kod pokazuje, jak utworzyć klasę modelu w CodeIgniter.

<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?>

Gdzie nazwa_modelu to nazwa klasy modelu, którą chcesz nadać. Każda klasa modelu musi dziedziczyć klasę CI_Model CodeIgniter. Pierwsza litera klasy modelu musi być zapisana wielką literą. Poniżej znajduje się kod klasy modelu użytkowników.

<?php 
   Class User_model extends CI_Model {
	
      Public function __construct() { 
         parent::__construct(); 
      } 
		
   } 
?>

Powyższą klasę modelu należy zapisać jako User_model.php. Nazwa klasy i nazwa pliku muszą być takie same.

Ładowanie modelu

Model można wywołać w kontrolerze. Poniższy kod może zostać użyty do załadowania dowolnego modelu.

$this->load->model('model_name');

Gdzie nazwa_modelu to nazwa modelu do załadowania. Po załadowaniu modelu możesz po prostu wywołać jego metodę, jak pokazano poniżej.

$this->model_name->method();

Modele ładowane automatycznie

Mogą wystąpić sytuacje, w których będziesz potrzebować jakiejś klasy modelu w całej aplikacji. W takich sytuacjach lepiej, żebyśmy ładowali go automatycznie.

/*
| ---------------------------------------------------------------
|  Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
|   $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|  
|   $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();

Jak pokazano na powyższym rysunku, podaj nazwę modelu w tablicy, którą chcesz automatycznie załadować, a zostanie on automatycznie załadowany, gdy system jest w stanie inicjalizacji i jest dostępny w całej aplikacji.

Pomocnicy

Jak sama nazwa wskazuje, pomoże ci zbudować system. Jest podzielony na małe funkcje, które mają służyć różnej funkcjonalności. W CodeIgniter dostępnych jest wielu pomocników, których lista znajduje się w poniższej tabeli. Możemy też zbudować własnych pomocników.

Pomocnicy są zwykle przechowywani w Twoim system/helperslub application/helpers directory. Pomocnicy niestandardowi są przechowywani w plikachapplication/helpers katalog i pomoce systemowe są przechowywane w system/helpersinformator. CodeIgniter będzie wyglądać jako pierwszy w Twoimapplication/helpers directory. Jeśli katalog nie istnieje lub nie ma określonego helpera, CodeIgniter zajrzy do twojego globalsystem/helpers/ directory. Każdy pomocnik, niezależnie od tego, czy jest to pomocnik niestandardowy, czy systemowy, musi zostać załadowany przed użyciem.

SN Nazwa i opis pomocnika
1

Array Helper

Plik Array Helper zawiera funkcje pomagające w pracy z tablicami.

2

CAPTCHA Helper

Plik pomocnika CAPTCHA zawiera funkcje pomagające w tworzeniu obrazów CAPTCHA.

3

Cookie Helper

Plik Cookie Helper zawiera funkcje ułatwiające pracę z plikami cookie.

4

Date Helper

Plik pomocnika daty zawiera funkcje ułatwiające pracę z datami.

5

Directory Helper

Plik Directory Helper zawiera funkcje pomagające w pracy z katalogami.

6

Download Helper

Pomocnik pobierania umożliwia pobieranie danych na pulpit.

7

Email Helper

Pomocnik poczty e-mail udostępnia kilka funkcji pomocniczych do pracy z pocztą e-mail. Aby uzyskać bardziej niezawodne rozwiązanie e-mail, zobacz Klasa e-mail CodeIgniter.

8

File Helper

Plik File Helper zawiera funkcje pomagające w pracy z plikami.

9

Form Helper

Plik Form Helper zawiera funkcje pomagające w pracy z formularzami.

10

HTML Helper

Plik pomocniczy HTML zawiera funkcje pomagające w pracy z językiem HTML.

11

Inflector Helper

Plik Inflector Helper zawiera funkcje, które umożliwiają zmianę słów na liczbę mnogą, pojedynczą, wielkość liter itp.

12

Language Helper

Plik pomocnika języka zawiera funkcje ułatwiające pracę z plikami językowymi.

13

Number Helper

Plik Number Helper zawiera funkcje ułatwiające pracę z danymi liczbowymi.

14

Path Helper

Plik Path Helper zawiera funkcje umożliwiające pracę ze ścieżkami plików na serwerze.

15

Security Helper

Plik Security Helper zawiera funkcje związane z bezpieczeństwem.

16

Smiley Helper

Plik Smiley Helper zawiera funkcje umożliwiające zarządzanie uśmieszkami (emotikonami).

17

String Helper

Plik String Helper zawiera funkcje, które pomagają w pracy z ciągami.

18

Text Helper

Plik pomocnika tekstu zawiera funkcje pomagające w pracy z tekstem.

19

Typography Helper

Plik pomocnika typografii zawiera funkcje, które ułatwiają formatowanie tekstu w odpowiedni semantycznie sposób.

20

URL Helper

Plik URL Helper zawiera funkcje pomagające w pracy z adresami URL.

21

XML Helper

Plik pomocniczy XML zawiera funkcje pomagające w pracy z danymi XML.

Ładowanie pomocnika

Pomocnika można załadować, jak pokazano poniżej -

$this->load->helper('name');

Gdzie imię to imię pomocnika. Na przykład, jeśli chcesz załadować pomocnika adresu URL, możesz go załadować jako -

$this->load->helper('url');

Wytyczanie

CodeIgniter ma przyjazny dla użytkownika system routingu URI, dzięki czemu możesz łatwo przekierować adres URL. Zwykle istnieje relacja jeden do jednego między ciągiem adresu URL a odpowiadającą mu klasą / metodą kontrolera. Segmenty w identyfikatorze URI zwykle są zgodne z tym wzorcem -

your-domain.com/class/method/id/
  • Plik first segment reprezentuje klasę kontrolera, która powinna zostać wywołana.

  • Plik second segment reprezentuje funkcję lub metodę klasy, którą należy wywołać.

  • Plik thirdi wszelkie dodatkowe segmenty reprezentują identyfikator i wszelkie zmienne, które zostaną przekazane do kontrolera.

W niektórych sytuacjach możesz chcieć zmienić ten domyślny mechanizm routingu. CodeIgniter zapewnia narzędzie, za pomocą którego możesz ustawić własne reguły routingu.

Dostosuj reguły routingu

Istnieje specjalny plik, w którym możesz sobie z tym wszystkim poradzić. Plik znajduje się w application / config / tours.php. Znajdziesz tablicę o nazwie $ route, w której możesz dostosować swoje reguły routingu. Klucz w tablicy $ route zadecyduje, do czego kierować, a wartość zadecyduje, dokąd należy kierować. W CodeIgniter są trzy zarezerwowane trasy.

SN Zarezerwowane trasy i opis
1

$route['default_controller']

Ta trasa wskazuje, która klasa kontrolera powinna zostać załadowana, jeśli identyfikator URI nie zawiera danych, co będzie miało miejsce, gdy ludzie załadują Twój główny adres URL. Zachęcamy do posiadania domyślnej trasy, w przeciwnym razie domyślnie pojawi się strona 404. W tym miejscu możemy ustawić stronę domową serwisu tak, aby była ładowana domyślnie.

2

$route['404_override']

Ta trasa wskazuje, która klasa kontrolera powinna zostać załadowana, jeśli żądany kontroler nie zostanie znaleziony. Zastąpi domyślną stronę błędu 404. Nie wpłynie to nashow_404() funkcja, która będzie kontynuować ładowanie domyślnej error_404.php plik w application/views/errors/error_404.php.

3

$route['translate_uri_dashes']

Jak widać po wartości logicznej, nie jest to dokładnie trasa. Ta opcja umożliwia automatyczne zastępowanie myślników („-”) podkreśleniami w segmentach kontrolera i identyfikatora URI metody, oszczędzając w ten sposób dodatkowe wpisy tras, jeśli trzeba to zrobić. Jest to wymagane, ponieważ myślnik nie jest prawidłowym znakiem klasy lub nazwy metody i spowoduje błąd krytyczny, jeśli spróbujesz go użyć.

Trasy można dostosować według wildcards lub używając regular expressions pamiętaj jednak, że te niestandardowe reguły routingu muszą następować po zastrzeżonych regułach.

Symbole wieloznaczne

Możemy użyć dwóch symboli wieloznacznych, jak wyjaśniono poniżej -

  • (:num) - Dopasuje segment zawierający tylko cyfry.

  • (:any) - Dopasuje segment zawierający dowolny znak.

Example

$route['product/:num']='catalog/product_lookup';

W powyższym przykładzie, jeśli dosłowne słowo „produkt” znajduje się w pierwszym segmencie adresu URL, aw drugim segmencie znajduje się liczba, zamiast tego używana jest klasa „katalog” i metoda „product_lookup”.

Wyrażenia regularne

Podobnie jak symbole wieloznaczne, możemy również używać wyrażeń regularnych w $route array keyczęść. Jeśli jakikolwiek identyfikator URI pasuje do wyrażenia regularnego, zostanie przekierowany do części wartości ustawionej w tablicy $ route.

Example

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

W powyższym przykładzie identyfikator URI podobny do products / shoes / 123 będzie zamiast tego nazywać „shoes”Klasa kontrolera i„id_123" metoda.