CodeIgniter MVC (Model View Controller) Framework с пример

Съдържание:

Anonim

Какво е MVC?

MVC стандарти за Model-View-Control. Това е архитектурен модел, който разделя приложението на три основни компонента.

1. Моделът се занимава с бизнес логика и взаимодействия с бази данни

2. Контролерът координира дейностите между модела и изгледа

3. View е отговорен за представянето на данните

Следват някои от предимствата на архитектурния модел на MVC

  • Разхлабено съединение - компонентите съществуват и функционират независимо един от друг.
  • Гъвкавост - човек може лесно да прави промени в отделни компоненти
  • Повишена производителност - повече от един човек може да работи по проекта едновременно. Предните разработчици могат да работят върху изгледи и презентация, докато бекенд разработчиците могат да се фокусират върху модели и тъй като системата е слабо свързана, тя работи в края на деня

В този урок ще научите:

  • Какво е MVC?
    • Модел
    • Контролер
    • Изглед
  • Как работят MVC рамките?
  • CodeIgniter контролер
  • Модел CodeIgniter

Модел

Моделът отговаря за взаимодействието с източниците на данни. Това обикновено е база данни, но може да бъде и услуга, която предоставя исканите данни. Честа практика е и бизнес логиката да се съдържа в моделите, за разлика от контролера. Тази практика обикновено се нарича дебел модел кльощав контролер.

Моделът обикновено записва данни в базата данни, осигурява механизъм за редактиране и актуализиране и изтриване на данни. В съвременното уеб приложение моделите използват модели за проектиране на достъп до данни като активен запис, за да улеснят взаимодействието с базата данни.

Например CodeIgniter използва вградена библиотека Active Record, за да подпомогне моделите, докато други рамки като Laravel използват Eloquent Object Relational Mapper (ORM), която подпомага достъпа до данни.

Контролер

Контролерът прослушва входящите заявки за ресурси от потребителите. Той действа като междинен продукт между модела и изгледа и понякога прилага и някои бизнес правила. Да приемем, че контролерът получава заявка за регистрация на потребител в базата данни.

Администраторът може да извърши проверка на данните за подаденото, за да гарантира, че са подадени всички необходими параметри. Ако нещо липсва, потребителят се пренасочва към страницата за регистрация със съответното съобщение за грешка. Контролерът може също да поиска от модела да извърши повече проверки, като провери дали подаденият имейл адрес вече съществува. Ако всички правила за валидиране преминат, тогава контролерът изпраща данните на модела за процес и изчаква отговора.

След като моделът обработи информацията и върне положителен отговор, контролерът зарежда подходящия изглед и предава данните, върнати от модела, като параметър.

Изглед

Изгледът се занимава с данни, представени на крайния потребител. В уеб приложенията изгледите често съдържат HTML, CSS и по желание JavaScript. Изгледите съдържат минимален програмен код. Кодът, съдържащ се в изгледите, обикновено се използва за цикъл през колекции от данни, получени като параметри от модела или помощната функция за почистване на данни или създаване на връзки за редактиране на записите. Повечето съвременни уеб приложения обикновено използват механизми за шаблони, които определят собствения си синтаксис, който е по-скоро псевдокод и може лесно да бъде разбран от дизайнерите. При работа с CodeIgniter е обичайна практика да се използват кратки PHP тагове и контролни структури. За да покажете нещо в CodeIgniter, може да използвате следния код


За разлика от

Контролните структури обикновено се пишат по следния начин


Както можете да видите от горния пример, изгледът ще използва комбинация от PHP и HTML, вместо да затваря всичко в чист PHP код.

Как работят MVC рамките?

Следващото изображение показва, че MVC framework работи

Контролерът получава заявката от потребителя, взаимодейства с модела на базата данни, ако е необходимо, след което връща резултата обратно в браузъра под формата на HTML код, който браузърът интерпретира в удобен за четене формат и се показва на потребителя.

CodeIgniter контролер

Нека сега разбием какво точно се случи, когато заредихме горния URL адрес в уеб браузъра.

Отворете файла Welcome.php контролер намира приложение / контролери

Трябва да можете да видите следния код

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

ТУК,

  • дефинирано ('BASEPATH') ИЛИ изход ('Не е разрешен директен достъп до скрипт'); предотвратява директен достъп до контролера, ако заявката не е дошла чрез index.php. това е от съображения за сигурност.
  • class Welcome разширява CI_Controller {…} дефинира класа на контролера Welcome и разширява родителския клас CI_Controller
  • индекс на публичната функция () {…} дефинира метода на индекса, който отговаря на URL адреса http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); зарежда изгледа welcome_message, който се намира в директорията application / views

Сега ще актуализираме метода на индекса, както следва

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

ТУК,

  • $ this-> load-> model ('customers_model'); зарежда модела на клиентите.
  • $ data ['client'] = $ this-> customers_model-> get_customer (3); извиква метода get_customer на customers_model и предава в параметър 3. В този пример сме кодирали твърдо стойността, но в приложения от реалния живот това би бил параметър от URI.
  • $ this-> load-> view ('welcome_message', $ data); зарежда изгледа welcome_message и предава променливата $ data в изгледа

Модел CodeIgniter

Нека сега създадем изгледа, на който се позовахме в горния код. За простота, нашият модел няма да взаимодейства с базата данни, но ще върне статичен клиентски запис. Ще работим с бази данни в следващите уроци.

Създайте файл Customers_model.php в приложение / модели

Добавете следния код


ТУК,

  • клас Customers_model разширява CI_Model {…} дефинира модела Customers_model, който разширява CI_Model.
  • публична функция get_customer ($ id) {…} дефинира метода get client въз основа на идентификатор на клиента
  • $ data [...] определя статичните стойности на нашия измислен клиент. Това трябва да е ред, върнат от базата данни.
  • върнете $ данни; връща данните на клиента.

Тоест това е за нашия модел. Нека сега модифицираме изгледа welcome_message

Отворете welcome_message.php, намиращ се в

application/views/welcome_message.php

Заменете кода със следното

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Запазете промените

Заредете следния URL в уеб браузъра

http: // localhost: 3000 /

Трябва да можете да видите картата на клиента, както е показано на изображението по-долу

Обобщение

  • MVC е архитектурен модел, който разделя приложението на три основни компонента
  • Моделът отговаря за взаимодействието с източниците на данни
  • Контролерът прослушва входящите заявки за ресурси от потребителите
  • В уеб приложенията изгледите често съдържат HTML, CSS и по желание JavaScript
  • Контролерът получава заявката от потребителя, взаимодейства с модела на базата данни, ако е необходимо, след което връща резултата обратно в браузъра под формата на HTML код