Framework CodeIgniter MVC (Model View Controller) z przykładem

Spisie treści:

Anonim

Co to jest MVC?

Standardy MVC dla sterowania widokiem modelu. Jest to wzorzec architektoniczny, który dzieli aplikację na trzy główne komponenty.

1. Model zajmuje się logiką biznesową i interakcjami z bazami danych

2. Kontroler koordynuje działania pomiędzy modelem a widokiem

3. Widok odpowiada za prezentację danych

Poniżej przedstawiono niektóre zalety wzorca architektonicznego MVC

  • Luźne sprzężenie - komponenty istnieją i działają niezależnie od siebie.
  • Elastyczność - łatwo można wprowadzać zmiany w poszczególnych komponentach
  • Zwiększona produktywność - nad projektem może pracować jednocześnie więcej niż jedna osoba. Programiści front-endu mogą pracować nad widokami i prezentacją, podczas gdy programiści backendu mogą skupić się na modelach, a ponieważ system jest luźno powiązany, działa pod koniec dnia

W tym samouczku dowiesz się:

  • Co to jest MVC?
    • Model
    • Kontroler
    • Widok
  • Jak działają frameworki MVC?
  • Kontroler CodeIgniter
  • Model CodeIgniter

Model

Model jest odpowiedzialny za interakcję ze źródłami danych. Zwykle jest to baza danych, ale może to być również usługa dostarczająca żądane dane. Powszechną praktyką jest również umieszczanie logiki biznesowej w modelach, a nie w kontrolerze. Ta praktyka jest zwykle określana jako chudy kontroler tłuszczu modelki.

Model zwykle zapisuje dane w bazie danych, zapewnia mechanizm edycji i aktualizacji oraz usuwania danych. W nowoczesnej aplikacji internetowej modele używają wzorców projektowych dostępu do danych, takich jak aktywny rekord, aby ułatwić interakcję z bazą danych.

Na przykład CodeIgniter używa wbudowanej biblioteki Active Record, aby wspomóc modele, podczas gdy inne frameworki, takie jak Laravel, używają Eloquent Object Relational Mapper (ORM), który pomaga w dostępie do danych.

Kontroler

Kontroler nasłuchuje nadchodzących żądań zasobów od użytkowników. Działa jako pośrednik między modelem a widokiem, a czasami implementuje również pewne reguły biznesowe. Powiedzmy, że kontroler otrzymuje żądanie rejestracji użytkownika w bazie danych.

Administrator może przeprowadzić walidację przesłanych danych, aby upewnić się, że wszystkie wymagane parametry zostały przesłane. Jeśli czegoś brakuje, użytkownik jest przekierowywany na stronę rejestracji z wyświetlonym odpowiednim komunikatem o błędzie. Administrator może również zażądać od modelu wykonania większej walidacji, sprawdzając, czy podany adres e-mail już istnieje. Jeśli wszystkie reguły walidacji przejdą pomyślnie, to kontroler przesyła dane do modelu w celu przetworzenia i czeka na odpowiedź.

Gdy model przetworzy informacje i zwróci pozytywną odpowiedź, kontroler ładuje odpowiedni widok i przekazuje dane zwrócone z modelu jako parametr.

Widok

Widok dotyczy danych prezentowanych użytkownikowi końcowemu. W aplikacjach internetowych widoki często zawierają HTML, CSS i opcjonalnie JavaScript. Widoki zawierają minimalny kod programistyczny. Kod zawarty w widokach jest zwykle używany do przeglądania kolekcji danych otrzymanych jako parametry z modelu lub funkcji pomocniczej do czyszczenia danych lub tworzenia linków do edycji rekordów. Większość nowoczesnych aplikacji internetowych zwykle używa silników szablonów, które definiują własną składnię, która jest bardziej podobna do pseudokodu i może być łatwo zrozumiała przez projektantów. Podczas pracy z CodeIgniterem powszechną praktyką jest używanie krótkich tagów PHP i struktur kontrolnych. Aby wyświetlić coś w CodeIgniter, można użyć następującego kodu


W przeciwieństwie do

Struktury kontrolne są zwykle napisane w następujący sposób


Jak widać na powyższym przykładzie, widok użyje kombinacji PHP i HTML zamiast otaczać wszystko w czystym kodzie PHP.

Jak działają frameworki MVC?

Poniższy obraz przedstawia działanie platformy MVC

Kontroler otrzymuje żądanie od użytkownika, w razie potrzeby współdziała z modelem bazy danych, a następnie zwraca wynik z powrotem do przeglądarki w postaci kodu HTML, który przeglądarka zinterpretowała na czytelny dla człowieka format i wyświetlił użytkownikowi.

Kontroler CodeIgniter

Przyjrzyjmy się teraz, co się stało, kiedy załadowaliśmy powyższy adres URL do przeglądarki internetowej.

Otwórz plik Welcome.php znajdujący się w aplikacji / controllers

Powinieneś być w stanie zobaczyć następujący kod

load->view('welcome_message');}}

TUTAJ,

  • define ('BASEPATH') OR exit ('Brak bezpośredniego dostępu do skryptu'); zapobiega bezpośredniemu dostępowi do kontrolera, jeśli żądanie nie przeszło przez index.php. ma to na celu zapewnienie bezpieczeństwa.
  • class Welcome extends CI_Controller {…} definiuje klasę kontrolera Welcome i rozszerza klasę nadrzędną CI_Controller
  • public function index () {…} definiuje metodę indeksu, która odpowiada na adres URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); ładuje widok Welcome_message, który znajduje się w katalogu application / views

Zaktualizujemy teraz metodę indeksu w następujący sposób

public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}

TUTAJ,

  • $ this-> load-> model ('customers_model'); ładuje model klienta.
  • $ data ['customer'] = $ this-> customer_model-> get_customer (3); wywołuje metodę get_customer modelu customers_model i przekazuje parametr 3. W tym przykładzie zakodowaliśmy wartość na stałe, ale w rzeczywistych aplikacjach byłby to parametr z identyfikatora URI.
  • $ this-> load-> view ('welcome_message', $ data); ładuje widok welcome_message i przekazuje zmienną $ data do widoku

Model CodeIgniter

Utwórzmy teraz widok, do którego odwołujemy się w powyższym kodzie. Dla uproszczenia nasz model nie będzie współpracował z bazą danych, ale zwróci statyczny rekord klienta. Z bazami danych będziemy pracować w następnych samouczkach.

Utwórz plik Customers_model.php w application / models

Dodaj następujący kod


TUTAJ,

  • klasa Customer_model extends CI_Model {…} definiuje model Customers_model, który rozszerza CI_Model.
  • funkcja publiczna get_customer ($ id) {…} definiuje metodę pobierania klienta na podstawie identyfikatora klienta
  • $ data […] określa statyczne wartości naszego fikcyjnego klienta. Powinien to być wiersz zwrócony z bazy danych.
  • return $ data; zwraca dane klienta.

To znaczy dla naszego modelu. Zmodyfikujmy teraz widok welcome_message

Otwórz welcome_message.php znajdujący się w

application/views/welcome_message.php

Zastąp kod następującym

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Zapisz zmiany

Załaduj następujący adres URL w przeglądarce internetowej

http: // localhost: 3000 /

Powinieneś być w stanie zobaczyć kartę klienta, jak pokazano na poniższym obrazku

Podsumowanie

  • MVC to wzorzec architektoniczny, który dzieli aplikację na trzy główne komponenty
  • Model jest odpowiedzialny za interakcję ze źródłami danych
  • Kontroler nasłuchuje nadchodzących żądań zasobów od użytkowników
  • W aplikacjach internetowych widoki często zawierają HTML, CSS i opcjonalnie JavaScript
  • Kontroler odbiera żądanie od użytkownika, w razie potrzeby współdziała z modelem bazy danych, a następnie zwraca wynik z powrotem do przeglądarki w postaci kodu HTML